{"id":45201,"date":"2022-11-23T21:01:51","date_gmt":"2023-07-14T03:52:19","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/45201-2\/"},"modified":"2024-04-29T02:11:25","modified_gmt":"2024-04-28T18:11:25","slug":"45201-2","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/45201-2\/","title":{"rendered":""},"content":{"rendered":"<p>\u624b\u623b\u308a\u304c&#8230;<\/p>\n<p>1\u65e5\u76ee<br \/>\n2\u65e5\u76ee<br \/>\n3\u65e5\u76ee<\/p>\n<h2>COC\u304b\u3089BultIn LSP\u3078\u79fb\u884c<\/h2>\n<p>rust-tools \u304c coc \u306b\u5bfe\u5fdc\u3057\u3066\u3044\u306a\u3055\u305d\u3046\u3002<br \/>\n\u4ed5\u65b9\u306a\u304fcoc\u304b\u3089BuiltIn LSP\u3078\u79fb\u884c\u3002<\/p>\n<p>\u3042\u3068\u3001lazy.nvim \u3067\u521d\u671f\u5316\u51e6\u7406\u3092\u306a\u3093\u3067\u3082\u304b\u3093\u3067\u3082 config \u306b\u7a81\u3063\u8fbc\u3080\u306e\u306f\u884c\u5100\u304c\u60aa\u305d\u3046\u3002<br \/>\n\u30ad\u30fc\u30de\u30c3\u30d7\u3068\u304b\u306f init \u306b\u79fb\u52d5\u3002<\/p>\n<p>\u53c2\u8003\u8a18\u4e8b<\/p>\n<p>&nbsp;<\/p>\n<p>\u3068\u308a\u3042\u3048\u305a\u3001\u52d5\u3044\u3066\u308b\u3084\u3064\u306f\u3053\u3093\u306a\u611f\u3058\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">require<\/span><span class=\"p\">(<\/span><span class=\"s1\">'lazy'<\/span><span class=\"p\">).<\/span><span class=\"n\">setup<\/span><span class=\"p\">({<\/span>\r\n  <span class=\"o\">...<\/span>\r\n  <span class=\"c1\">-- setup\u306e\u6700\u5f8c\u306b\u8ffd\u52a0<\/span>\r\n  <span class=\"p\">{<\/span>\r\n    <span class=\"s1\">'neovim\/nvim-lspconfig'<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"n\">dependencies<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span> <span class=\"s1\">'folke\/neoconf.nvim'<\/span> <span class=\"p\">},<\/span>\r\n    <span class=\"n\">config<\/span> <span class=\"o\">=<\/span> <span class=\"k\">function<\/span> <span class=\"p\">()<\/span>\r\n      <span class=\"c1\">-- neoconf\u306flsp\u306e\u521d\u671f\u5316\u524d\u306bsetup\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b<\/span>\r\n      <span class=\"nb\">require<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"neoconf\"<\/span><span class=\"p\">).<\/span><span class=\"n\">setup<\/span><span class=\"p\">({})<\/span>\r\n    <span class=\"k\">end<\/span>\r\n  <span class=\"p\">},<\/span>\r\n  <span class=\"p\">{<\/span>\r\n    <span class=\"s1\">'williamboman\/mason.nvim'<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"n\">config<\/span> <span class=\"o\">=<\/span> <span class=\"k\">function<\/span> <span class=\"p\">()<\/span>\r\n      <span class=\"nb\">require<\/span><span class=\"p\">(<\/span><span class=\"s1\">'mason'<\/span><span class=\"p\">).<\/span><span class=\"n\">setup<\/span><span class=\"p\">()<\/span>\r\n    <span class=\"k\">end<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"p\">},<\/span>\r\n  <span class=\"p\">{<\/span>\r\n    <span class=\"s1\">'williamboman\/mason-lspconfig.nvim'<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"n\">dependencies<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span> <span class=\"s1\">'neovim\/nvim-lspconfig'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'hrsh7th\/cmp-nvim-lsp'<\/span> <span class=\"p\">},<\/span>\r\n    <span class=\"n\">config<\/span> <span class=\"o\">=<\/span> <span class=\"k\">function<\/span> <span class=\"p\">()<\/span>\r\n      <span class=\"nb\">require<\/span><span class=\"p\">(<\/span><span class=\"s1\">'mason-lspconfig'<\/span><span class=\"p\">).<\/span><span class=\"n\">setup<\/span><span class=\"p\">({<\/span>\r\n        <span class=\"n\">ensure_installed<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n          <span class=\"s2\">\"lua_ls\"<\/span><span class=\"p\">,<\/span>\r\n          <span class=\"s2\">\"rust_analyzer\"<\/span><span class=\"p\">,<\/span>\r\n        <span class=\"p\">},<\/span>\r\n      <span class=\"p\">})<\/span>\r\n    <span class=\"k\">end<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"n\">init<\/span> <span class=\"o\">=<\/span> <span class=\"k\">function<\/span> <span class=\"p\">()<\/span>\r\n      <span class=\"nb\">require<\/span><span class=\"p\">(<\/span><span class=\"s1\">'mason-lspconfig'<\/span><span class=\"p\">).<\/span><span class=\"n\">setup_handlers<\/span><span class=\"p\">({<\/span> <span class=\"k\">function<\/span> <span class=\"p\">(<\/span><span class=\"n\">server<\/span><span class=\"p\">)<\/span>\r\n        <span class=\"kd\">local<\/span> <span class=\"n\">opt<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n          <span class=\"n\">capabilities<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">require<\/span><span class=\"p\">(<\/span><span class=\"s1\">'cmp_nvim_lsp'<\/span><span class=\"p\">).<\/span><span class=\"n\">default_capabilities<\/span><span class=\"p\">(<\/span>\r\n            <span class=\"c1\">--vim.lsp.protocol.make_client_capabilities()<\/span>\r\n          <span class=\"p\">)<\/span>\r\n        <span class=\"p\">}<\/span>\r\n        <span class=\"nb\">require<\/span><span class=\"p\">(<\/span><span class=\"s1\">'lspconfig'<\/span><span class=\"p\">)[<\/span><span class=\"n\">server<\/span><span class=\"p\">].<\/span><span class=\"n\">setup<\/span><span class=\"p\">(<\/span><span class=\"n\">opt<\/span><span class=\"p\">)<\/span>\r\n      <span class=\"k\">end<\/span> <span class=\"p\">})<\/span>\r\n    <span class=\"k\">end<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"p\">},<\/span>\r\n  <span class=\"p\">{<\/span>\r\n    <span class=\"s1\">'hrsh7th\/nvim-cmp'<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"n\">dependencies<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n      <span class=\"s1\">'hrsh7th\/vim-vsnip'<\/span><span class=\"p\">,<\/span>\r\n      <span class=\"s1\">'hrsh7th\/cmp-path'<\/span><span class=\"p\">,<\/span>\r\n      <span class=\"s1\">'hrsh7th\/cmp-buffer'<\/span><span class=\"p\">,<\/span>\r\n      <span class=\"s1\">'hrsh7th\/cmp-cmdline'<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"p\">},<\/span>\r\n    <span class=\"n\">config<\/span> <span class=\"o\">=<\/span> <span class=\"k\">function<\/span> <span class=\"p\">()<\/span>\r\n      <span class=\"kd\">local<\/span> <span class=\"n\">cmp<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">require<\/span><span class=\"p\">(<\/span><span class=\"s1\">'cmp'<\/span><span class=\"p\">)<\/span>\r\n      <span class=\"n\">cmp<\/span><span class=\"p\">.<\/span><span class=\"n\">setup<\/span><span class=\"p\">({<\/span>\r\n        <span class=\"n\">snippet<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n          <span class=\"n\">expand<\/span> <span class=\"o\">=<\/span> <span class=\"k\">function<\/span> <span class=\"p\">(<\/span><span class=\"n\">args<\/span><span class=\"p\">)<\/span>\r\n            <span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">fn<\/span><span class=\"p\">[<\/span><span class=\"s1\">'vsnip#anonymous'<\/span><span class=\"p\">](<\/span><span class=\"n\">args<\/span><span class=\"p\">.<\/span><span class=\"n\">body<\/span><span class=\"p\">)<\/span>\r\n          <span class=\"k\">end<\/span><span class=\"p\">,<\/span>\r\n        <span class=\"p\">},<\/span>\r\n        <span class=\"n\">sources<\/span> <span class=\"o\">=<\/span> <span class=\"n\">cmp<\/span><span class=\"p\">.<\/span><span class=\"n\">config<\/span><span class=\"p\">.<\/span><span class=\"n\">sources<\/span><span class=\"p\">({<\/span>\r\n          <span class=\"p\">{<\/span> <span class=\"n\">name<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'nvim_lsp'<\/span> <span class=\"p\">},<\/span>\r\n          <span class=\"p\">{<\/span> <span class=\"n\">name<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'vsnip'<\/span> <span class=\"p\">},<\/span>\r\n        <span class=\"p\">},<\/span> <span class=\"p\">{<\/span>\r\n          <span class=\"p\">{<\/span> <span class=\"n\">name<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'buffer'<\/span> <span class=\"p\">}<\/span>\r\n        <span class=\"p\">}),<\/span>\r\n        <span class=\"n\">mapping<\/span> <span class=\"o\">=<\/span> <span class=\"n\">cmp<\/span><span class=\"p\">.<\/span><span class=\"n\">mapping<\/span><span class=\"p\">.<\/span><span class=\"n\">preset<\/span><span class=\"p\">.<\/span><span class=\"n\">insert<\/span><span class=\"p\">({<\/span>\r\n          <span class=\"p\">[<\/span><span class=\"s2\">\"&lt;Tab&gt;\"<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"n\">cmp<\/span><span class=\"p\">.<\/span><span class=\"n\">mapping<\/span><span class=\"p\">.<\/span><span class=\"n\">select_next_item<\/span><span class=\"p\">(),<\/span>\r\n          <span class=\"p\">[<\/span><span class=\"s2\">\"&lt;S-Tab&gt;\"<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"n\">cmp<\/span><span class=\"p\">.<\/span><span class=\"n\">mapping<\/span><span class=\"p\">.<\/span><span class=\"n\">select_prev_item<\/span><span class=\"p\">(),<\/span>\r\n          <span class=\"p\">[<\/span><span class=\"s2\">\"&lt;C-space&gt;\"<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"n\">cmp<\/span><span class=\"p\">.<\/span><span class=\"n\">mapping<\/span><span class=\"p\">.<\/span><span class=\"n\">complete<\/span><span class=\"p\">(),<\/span>\r\n          <span class=\"c1\">--[\"&lt;C-e&gt;\"] = cmp.mapping.abort(),<\/span>\r\n          <span class=\"p\">[<\/span><span class=\"s2\">\"&lt;CR&gt;\"<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"n\">cmp<\/span><span class=\"p\">.<\/span><span class=\"n\">mapping<\/span><span class=\"p\">.<\/span><span class=\"n\">confirm<\/span><span class=\"p\">({<\/span> <span class=\"nb\">select<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">true<\/span> <span class=\"p\">})<\/span>\r\n        <span class=\"p\">}),<\/span>\r\n        <span class=\"n\">experimental<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n          <span class=\"n\">ghost_text<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\r\n        <span class=\"p\">},<\/span>\r\n      <span class=\"p\">})<\/span>\r\n\r\n      <span class=\"n\">cmp<\/span><span class=\"p\">.<\/span><span class=\"n\">setup<\/span><span class=\"p\">.<\/span><span class=\"n\">filetype<\/span><span class=\"p\">(<\/span><span class=\"s1\">'gitcommit'<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"n\">sources<\/span> <span class=\"o\">=<\/span> <span class=\"n\">cmp<\/span><span class=\"p\">.<\/span><span class=\"n\">config<\/span><span class=\"p\">.<\/span><span class=\"n\">sources<\/span><span class=\"p\">({<\/span>\r\n          <span class=\"p\">{<\/span> <span class=\"n\">name<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'git'<\/span> <span class=\"p\">},<\/span>\r\n        <span class=\"p\">},<\/span> <span class=\"p\">{<\/span>\r\n          <span class=\"p\">{<\/span> <span class=\"n\">name<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'buffer'<\/span> <span class=\"p\">},<\/span>\r\n        <span class=\"p\">})<\/span>\r\n      <span class=\"p\">})<\/span>\r\n\r\n      <span class=\"n\">cmp<\/span><span class=\"p\">.<\/span><span class=\"n\">setup<\/span><span class=\"p\">.<\/span><span class=\"n\">cmdline<\/span><span class=\"p\">({<\/span> <span class=\"s1\">'\/'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'?'<\/span> <span class=\"p\">},<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"n\">mapping<\/span> <span class=\"o\">=<\/span> <span class=\"n\">cmp<\/span><span class=\"p\">.<\/span><span class=\"n\">mapping<\/span><span class=\"p\">.<\/span><span class=\"n\">preset<\/span><span class=\"p\">.<\/span><span class=\"n\">cmdline<\/span><span class=\"p\">(),<\/span>\r\n        <span class=\"n\">sources<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n          <span class=\"p\">{<\/span> <span class=\"n\">name<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'buffer'<\/span> <span class=\"p\">},<\/span>\r\n        <span class=\"p\">}<\/span>\r\n      <span class=\"p\">})<\/span>\r\n\r\n      <span class=\"n\">cmp<\/span><span class=\"p\">.<\/span><span class=\"n\">setup<\/span><span class=\"p\">.<\/span><span class=\"n\">cmdline<\/span><span class=\"p\">(<\/span><span class=\"s1\">':'<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"n\">mapping<\/span> <span class=\"o\">=<\/span> <span class=\"n\">cmp<\/span><span class=\"p\">.<\/span><span class=\"n\">mapping<\/span><span class=\"p\">.<\/span><span class=\"n\">preset<\/span><span class=\"p\">.<\/span><span class=\"n\">cmdline<\/span><span class=\"p\">(),<\/span>\r\n        <span class=\"n\">sources<\/span> <span class=\"o\">=<\/span> <span class=\"n\">cmp<\/span><span class=\"p\">.<\/span><span class=\"n\">config<\/span><span class=\"p\">.<\/span><span class=\"n\">sources<\/span><span class=\"p\">({<\/span>\r\n          <span class=\"p\">{<\/span> <span class=\"n\">name<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'path'<\/span> <span class=\"p\">}<\/span>\r\n        <span class=\"p\">},<\/span> <span class=\"p\">{<\/span>\r\n          <span class=\"p\">{<\/span> <span class=\"n\">name<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'cmdline'<\/span> <span class=\"p\">}<\/span>\r\n        <span class=\"p\">}),<\/span>\r\n      <span class=\"p\">})<\/span>\r\n    <span class=\"k\">end<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"p\">},<\/span>\r\n  <span class=\"p\">{<\/span>\r\n    <span class=\"s2\">\"ray-x\/lsp_signature.nvim\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"n\">event<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"VeryLazy\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"n\">opts<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n      <span class=\"n\">toggle_key<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'&lt;C-p&gt;'<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"p\">},<\/span>\r\n    <span class=\"n\">config<\/span> <span class=\"o\">=<\/span> <span class=\"k\">function<\/span><span class=\"p\">(<\/span><span class=\"n\">_<\/span><span class=\"p\">,<\/span> <span class=\"n\">opts<\/span><span class=\"p\">)<\/span> <span class=\"nb\">require<\/span><span class=\"s1\">'lsp_signature'<\/span><span class=\"p\">.<\/span><span class=\"n\">setup<\/span><span class=\"p\">(<\/span><span class=\"n\">opts<\/span><span class=\"p\">)<\/span> <span class=\"k\">end<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"n\">init<\/span> <span class=\"o\">=<\/span> <span class=\"k\">function<\/span> <span class=\"p\">()<\/span>\r\n      <span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">api<\/span><span class=\"p\">.<\/span><span class=\"n\">nvim_create_autocmd<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"LspAttach\"<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"n\">callback<\/span> <span class=\"o\">=<\/span> <span class=\"k\">function<\/span> <span class=\"p\">(<\/span><span class=\"n\">args<\/span><span class=\"p\">)<\/span>\r\n          <span class=\"kd\">local<\/span> <span class=\"n\">buffer<\/span> <span class=\"o\">=<\/span> <span class=\"n\">args<\/span><span class=\"p\">.<\/span><span class=\"n\">buf<\/span>\r\n          <span class=\"c1\">--local client = vim.lsp.get_client_by_id(args.data.client_id)<\/span>\r\n          <span class=\"nb\">require<\/span><span class=\"p\">(<\/span><span class=\"s1\">'lsp_signature'<\/span><span class=\"p\">).<\/span><span class=\"n\">on_attach<\/span><span class=\"p\">({},<\/span> <span class=\"n\">buffer<\/span><span class=\"p\">)<\/span>\r\n        <span class=\"k\">end<\/span>\r\n      <span class=\"p\">})<\/span>\r\n    <span class=\"k\">end<\/span>\r\n  <span class=\"p\">},<\/span>\r\n<span class=\"p\">})<\/span>\r\n<\/code><\/pre>\n<p>LSP\u306e\u30ad\u30fc\u30de\u30c3\u30d7\u3082\u8ffd\u52a0<\/p>\n<pre class=\"post-pre\"><code><span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">keymap<\/span><span class=\"p\">.<\/span><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"s1\">'i'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'jj'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'&lt;Esc&gt;'<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"n\">noremap<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">true<\/span> <span class=\"p\">})<\/span>\r\n\r\n<span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">keymap<\/span><span class=\"p\">.<\/span><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"s1\">'n'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'K'<\/span><span class=\"p\">,<\/span>  <span class=\"s1\">'&lt;cmd&gt;lua vim.lsp.buf.hover()&lt;CR&gt;'<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">keymap<\/span><span class=\"p\">.<\/span><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"s1\">'n'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'gf'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'&lt;cmd&gt;lua vim.lsp.buf.formatting()&lt;CR&gt;'<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">keymap<\/span><span class=\"p\">.<\/span><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"s1\">'n'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'gr'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'&lt;cmd&gt;lua vim.lsp.buf.references()&lt;CR&gt;'<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">keymap<\/span><span class=\"p\">.<\/span><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"s1\">'n'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'gd'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'&lt;cmd&gt;lua vim.lsp.buf.definition()&lt;CR&gt;'<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">keymap<\/span><span class=\"p\">.<\/span><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"s1\">'n'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'gD'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'&lt;cmd&gt;lua vim.lsp.buf.declaration()&lt;CR&gt;'<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">keymap<\/span><span class=\"p\">.<\/span><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"s1\">'n'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'gi'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'&lt;cmd&gt;lua vim.lsp.buf.implementation()&lt;CR&gt;'<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">keymap<\/span><span class=\"p\">.<\/span><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"s1\">'n'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'gt'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'&lt;cmd&gt;lua vim.lsp.buf.type_definition()&lt;CR&gt;'<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">keymap<\/span><span class=\"p\">.<\/span><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"s1\">'n'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'gn'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'&lt;cmd&gt;lua vim.lsp.buf.rename()&lt;CR&gt;'<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">keymap<\/span><span class=\"p\">.<\/span><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"s1\">'n'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'ga'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'&lt;cmd&gt;lua vim.lsp.buf.code_action()&lt;CR&gt;'<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">keymap<\/span><span class=\"p\">.<\/span><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"s1\">'n'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'ge'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'&lt;cmd&gt;lua vim.diagnostic.open_float()&lt;CR&gt;'<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">keymap<\/span><span class=\"p\">.<\/span><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"s1\">'n'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'g]'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'&lt;cmd&gt;lua vim.diagnostic.goto_next()&lt;CR&gt;'<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">keymap<\/span><span class=\"p\">.<\/span><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"s1\">'n'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'g['<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'&lt;cmd&gt;lua vim.diagnostic.goto_prev()&lt;CR&gt;'<\/span><span class=\"p\">)<\/span>\r\n<\/code><\/pre>\n<p>\u3064\u3044\u3067\u306b temp.lua \u3092\u5352\u696d\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c1\">-- \u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9<\/span>\r\n<span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">opt<\/span><span class=\"p\">.<\/span><span class=\"n\">shortmess<\/span><span class=\"p\">:<\/span><span class=\"n\">append<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"c\"<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">opt<\/span><span class=\"p\">.<\/span><span class=\"n\">clipboard<\/span><span class=\"p\">:<\/span><span class=\"n\">append<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"unnamedplus\"<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">g<\/span><span class=\"p\">.<\/span><span class=\"n\">clipboard<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"n\">name<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"WslClipboard\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"n\">copy<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n     <span class=\"p\">[<\/span><span class=\"s2\">\"+\"<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"win32yank.exe -i --crlf\"<\/span><span class=\"p\">,<\/span>\r\n     <span class=\"p\">[<\/span><span class=\"s2\">\"*\"<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"win32yank.exe -i --crlf\"<\/span><span class=\"p\">,<\/span>\r\n   <span class=\"p\">},<\/span>\r\n  <span class=\"n\">paste<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n     <span class=\"p\">[<\/span><span class=\"s2\">\"+\"<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"win32yank.exe -o --lf\"<\/span><span class=\"p\">,<\/span>\r\n     <span class=\"p\">[<\/span><span class=\"s2\">\"*\"<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"win32yank.exe -o --lf\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"p\">},<\/span>\r\n  <span class=\"n\">cache_enabled<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">1<\/span><span class=\"p\">,<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"c1\">-- Leader\u30ad\u30fc\u306e\u8a2d\u5b9a<\/span>\r\n<span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">g<\/span><span class=\"p\">.<\/span><span class=\"n\">mapleader<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\" \"<\/span>\r\n<span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">g<\/span><span class=\"p\">.<\/span><span class=\"n\">maplocalleader<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\" \"<\/span>\r\n\r\n<span class=\"kd\">local<\/span> <span class=\"n\">options<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n\t<span class=\"n\">encoding<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"utf-8\"<\/span><span class=\"p\">,<\/span>\r\n\t<span class=\"n\">fileencoding<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"utf-8\"<\/span><span class=\"p\">,<\/span>\r\n\t<span class=\"n\">title<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\r\n\t<span class=\"n\">backup<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span>\r\n\t<span class=\"n\">tabstop<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">2<\/span><span class=\"p\">,<\/span>\r\n\t<span class=\"n\">shiftwidth<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">2<\/span><span class=\"p\">,<\/span>\r\n\t<span class=\"n\">softtabstop<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">2<\/span><span class=\"p\">,<\/span>\r\n\t<span class=\"n\">expandtab<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\r\n\t<span class=\"n\">autoindent<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\r\n\t<span class=\"n\">copyindent<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\r\n\t<span class=\"n\">numberwidth<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">4<\/span><span class=\"p\">,<\/span>\r\n\t<span class=\"n\">wrap<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span>\r\n\t<span class=\"n\">cursorline<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\r\n\t<span class=\"n\">termguicolors<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\r\n\t<span class=\"n\">guifont<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"HackGenNerd Console:style=Regular\"<\/span><span class=\"p\">,<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"k\">for<\/span> <span class=\"n\">k<\/span><span class=\"p\">,<\/span> <span class=\"n\">v<\/span> <span class=\"k\">in<\/span> <span class=\"nb\">pairs<\/span><span class=\"p\">(<\/span><span class=\"n\">options<\/span><span class=\"p\">)<\/span> <span class=\"k\">do<\/span>\r\n  <span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">opt<\/span><span class=\"p\">[<\/span><span class=\"n\">k<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"n\">v<\/span>\r\n<span class=\"k\">end<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"nb\">require<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"base\"<\/span><span class=\"p\">)<\/span>\r\n<span class=\"nb\">require<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"plugin\"<\/span><span class=\"p\">)<\/span>\r\n<span class=\"nb\">require<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"keymap\"<\/span><span class=\"p\">)<\/span>\r\n<span class=\"nb\">require<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"colorscheme\"<\/span><span class=\"p\">)<\/span>\r\n<span class=\"c1\">-- \u8aac\u660e\u3057\u3066\u306a\u3044\u304b\u3082\u3057\u308c\u306a\u3044\u3002<\/span>\r\n<span class=\"nb\">require<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"autocmds\"<\/span><span class=\"p\">)<\/span>\r\n<\/code><\/pre>\n<p>\u5b8c\u5168\u306b\u7406\u89e3\u3057\u3066\u306a\u3044\u3051\u3069\u3001\u306a\u3093\u3068\u306a\u304f\u52d5\u3044\u3066\u308b\u306e\u3067OK\u3002<br \/>\n\u3042\u3068\u3067\u6574\u7406\u3059\u308b\u3068\u304d\u306b\u304d\u3061\u3093\u3068\u898b\u308b\u3002<\/p>\n<h2>\u30c7\u30d0\u30c3\u30ac\u30fc\u306e\u5c0e\u5165<\/h2>\n<p>\u3044\u308d\u3044\u308d\u3068\u30c9\u30cf\u30de\u308a\u3057\u3066\u6642\u9593\u304c\u304b\u304b\u3063\u3066\u3057\u307e\u3063\u305f\u3002<br \/>\nVim\u754c\u9688\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306f\u8aad\u307f\u6163\u308c\u3066\u306a\u3044\u3068\u3061\u3087\u3063\u3068\u7406\u89e3\u3057\u306b\u304f\u3044\u6c17\u304c\u3059\u308b\u3002<br \/>\n\u5358\u7d14\u306bVim\u306e\u7406\u89e3\u304c\u8db3\u308a\u306a\u3044\u306e\u306f\u3042\u308b\u3002<\/p>\n<p>\u30ad\u30fc\u30d0\u30a4\u30f3\u30c9\u306f\u3042\u3068\u3067\u8a2d\u5b9a\u3059\u308b\u304c\u3001\u53d6\u308a\u6025\u304e\u52d5\u3044\u305f\u3082\u306e\u3092\u66f8\u304d\u9023\u306d\u308b\u3002<br \/>\n\u6700\u7d42\u7684\u306b\u5c0e\u5165\u3057\u305f\u306e\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">mfussenegger\/nvim-dap<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">jay-babu\/mason-nvim-dap<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">rust-lang\/rust.vim<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">simrat39\/rust-tools.nvim<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">rcarriga\/nvim-dap-ui<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nb\">require<\/span><span class=\"p\">(<\/span><span class=\"s1\">'lazy'<\/span><span class=\"p\">).<\/span><span class=\"n\">setup<\/span><span class=\"p\">({<\/span>\r\n  <span class=\"o\">...<\/span>\r\n  <span class=\"c1\">-- setup\u306e\u6700\u5f8c\u306b\u8ffd\u52a0<\/span>\r\n  <span class=\"p\">{<\/span> <span class=\"s1\">'mfussenegger\/nvim-dap'<\/span> <span class=\"p\">},<\/span>\r\n  <span class=\"p\">{<\/span>\r\n    <span class=\"s2\">\"jayp0521\/mason-nvim-dap.nvim\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"n\">config<\/span> <span class=\"o\">=<\/span> <span class=\"k\">function<\/span><span class=\"p\">()<\/span>\r\n      <span class=\"nb\">require<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"mason-nvim-dap\"<\/span><span class=\"p\">).<\/span><span class=\"n\">setup<\/span><span class=\"p\">({<\/span>\r\n        <span class=\"n\">automatic_installation<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\r\n        <span class=\"n\">ensure_installed<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span> <span class=\"s2\">\"codelldb\"<\/span> <span class=\"p\">},<\/span>\r\n      <span class=\"p\">})<\/span>\r\n    <span class=\"k\">end<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"p\">},<\/span>\r\n  <span class=\"p\">{<\/span>\r\n    <span class=\"s1\">'rust-lang\/rust.vim'<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"n\">init<\/span> <span class=\"o\">=<\/span> <span class=\"k\">function<\/span> <span class=\"p\">()<\/span>\r\n      <span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">g<\/span><span class=\"p\">.<\/span><span class=\"n\">rustfmt_autosave<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">1<\/span>\r\n    <span class=\"k\">end<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"p\">},<\/span>\r\n  <span class=\"p\">{<\/span>\r\n    <span class=\"s1\">'simrat39\/rust-tools.nvim'<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"n\">ft<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'rust'<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"n\">dependencies<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n      <span class=\"s1\">'mfussenegger\/nvim-dap'<\/span><span class=\"p\">,<\/span>\r\n      <span class=\"s1\">'rcarriga\/nvim-dap-ui'<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"p\">},<\/span>\r\n    <span class=\"n\">config<\/span> <span class=\"o\">=<\/span> <span class=\"k\">function<\/span> <span class=\"p\">()<\/span>\r\n      <span class=\"kd\">local<\/span> <span class=\"n\">mason_registry<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">require<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"mason-registry\"<\/span><span class=\"p\">)<\/span>\r\n      <span class=\"kd\">local<\/span> <span class=\"n\">codelldb_root<\/span> <span class=\"o\">=<\/span> <span class=\"n\">mason_registry<\/span><span class=\"p\">.<\/span><span class=\"n\">get_package<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"codelldb\"<\/span><span class=\"p\">):<\/span><span class=\"n\">get_install_path<\/span><span class=\"p\">()<\/span> <span class=\"o\">..<\/span> <span class=\"s2\">\"\/extension\/\"<\/span>\r\n      <span class=\"kd\">local<\/span> <span class=\"n\">codelldb_path<\/span> <span class=\"o\">=<\/span> <span class=\"n\">codelldb_root<\/span> <span class=\"o\">..<\/span> <span class=\"s2\">\"adapter\/codelldb\"<\/span>\r\n      <span class=\"kd\">local<\/span> <span class=\"n\">liblldb_path<\/span> <span class=\"o\">=<\/span> <span class=\"n\">codelldb_root<\/span> <span class=\"o\">..<\/span> <span class=\"s2\">\"lldb\/lib\/liblldb.so\"<\/span>\r\n      <span class=\"kd\">local<\/span> <span class=\"n\">rt<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">require<\/span><span class=\"p\">(<\/span><span class=\"s1\">'rust-tools'<\/span><span class=\"p\">)<\/span>\r\n      <span class=\"n\">rt<\/span><span class=\"p\">.<\/span><span class=\"n\">setup<\/span><span class=\"p\">({<\/span>\r\n        <span class=\"n\">tools<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n          <span class=\"n\">hover_actions<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n            <span class=\"c1\">-- \u8abf\u67fb\u4e2d\u306b\u3053\u308c\u304cfalse\u306b\u306a\u3063\u3066\u3044\u308b\u3082\u306e\u306b\u51fa\u4f1a\u3063\u305f\u304c<\/span>\r\n            <span class=\"c1\">-- \u3053\u308c\u304cfalse\u3060\u3068Floating Window\u304c\u8868\u793a\u3055\u308c\u305f\u3068\u304d\u306b\u30d5\u30a9\u30fc\u30ab\u30b9\u304c\u79fb\u3089\u305a\u30c9\u30cf\u30de\u308a\u3002<\/span>\r\n            <span class=\"n\">auto_focus<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\r\n          <span class=\"p\">},<\/span>\r\n        <span class=\"p\">},<\/span>\r\n        <span class=\"n\">server<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n          <span class=\"n\">on_attach<\/span> <span class=\"o\">=<\/span> <span class=\"k\">function<\/span><span class=\"p\">(<\/span><span class=\"n\">_<\/span><span class=\"p\">,<\/span> <span class=\"n\">bufnr<\/span><span class=\"p\">)<\/span>\r\n            <span class=\"nb\">require<\/span><span class=\"p\">(<\/span><span class=\"s1\">'dap'<\/span><span class=\"p\">)<\/span>\r\n            <span class=\"nb\">require<\/span><span class=\"p\">(<\/span><span class=\"s1\">'dapui'<\/span><span class=\"p\">)<\/span>\r\n            <span class=\"n\">vim<\/span><span class=\"p\">.<\/span><span class=\"n\">keymap<\/span><span class=\"p\">.<\/span><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"s1\">'n'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'&lt;C-space&gt;'<\/span><span class=\"p\">,<\/span> <span class=\"n\">rt<\/span><span class=\"p\">.<\/span><span class=\"n\">hover_actions<\/span><span class=\"p\">.<\/span><span class=\"n\">hover_actions<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"n\">buffer<\/span> <span class=\"o\">=<\/span> <span class=\"n\">bufnr<\/span> <span class=\"p\">})<\/span>\r\n          <span class=\"k\">end<\/span><span class=\"p\">,<\/span>\r\n          <span class=\"n\">standalone<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\r\n          <span class=\"n\">flags<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n            <span class=\"n\">debounce_text_changes<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">150<\/span><span class=\"p\">,<\/span>\r\n          <span class=\"p\">},<\/span>\r\n          <span class=\"n\">settings<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n            <span class=\"p\">[<\/span><span class=\"s2\">\"rust_analyzer\"<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n              <span class=\"n\">checkOnSave<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span> <span class=\"n\">enable<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"n\">command<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'clippy'<\/span> <span class=\"p\">},<\/span>\r\n              <span class=\"n\">cargo<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span> <span class=\"n\">allFeatures<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">true<\/span> <span class=\"p\">},<\/span>\r\n            <span class=\"p\">},<\/span>\r\n          <span class=\"p\">},<\/span>\r\n        <span class=\"p\">},<\/span>\r\n        <span class=\"n\">dap<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n          <span class=\"n\">adapter<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">require<\/span><span class=\"p\">(<\/span><span class=\"s1\">'rust-tools.dap'<\/span><span class=\"p\">).<\/span><span class=\"n\">get_codelldb_adapter<\/span><span class=\"p\">(<\/span><span class=\"n\">codelldb_path<\/span><span class=\"p\">,<\/span> <span class=\"n\">liblldb_path<\/span><span class=\"p\">)<\/span>\r\n        <span class=\"p\">},<\/span>\r\n      <span class=\"p\">})<\/span>\r\n    <span class=\"k\">end<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"p\">},<\/span>\r\n<span class=\"p\">})<\/span>\r\n<\/code><\/pre>\n<p>Mason\u3067 codelldb \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<br \/>\n\u4e00\u5fdc cpptools \u3082\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304a\u304f\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"p\">:<\/span>MasonInstall codelldb\r\n<span class=\"p\">:<\/span>MasonInstall cpptools\r\n<\/code><\/pre>\n<h3>\u52d5\u4f5c\u78ba\u8a8d<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nb\">mkdir<\/span> ~\/workspace\r\n<span class=\"nb\">cd<\/span> ~\/workspace\r\ncargo new hello_world\r\n<span class=\"nb\">cd <\/span>hello_world\r\nnvim src\/main.rt\r\n<\/code><\/pre>\n<p>main \u306b\u30ab\u30fc\u30bd\u30eb\u3092\u5408\u308f\u305b\u3066 C-space \u3067\u5b9f\u884c\u3067\u304d\u308b\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d5d4737434c4406cf10b7\/26-0.png\" alt=\"image.png\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d5d4737434c4406cf10b7\/27-0.png\" alt=\"image.png\" \/><\/div>\n<p>:lua require&#8217;dap&#8217;.continue() \u3067\u518d\u958b\u3067\u304d\u308b\u3057\u3001:lua require&#8217;dap&#8217;.step_over() \u3067\u30b9\u30c6\u30c3\u30d7\u30aa\u30fc\u30d0\u30fc\u3067\u304d\u308b\u3002<br \/>\nnvim-dap \u306f\u30ad\u30fc\u30de\u30c3\u30d7\u3057\u3068\u304b\u306a\u3044\u3068\u4f7f\u3044\u7269\u306a\u3089\u306a\u3044\u304c\u3001\u53d6\u308a\u6025\u304e\u52d5\u4f5c\u78ba\u8a8d\u306f\u3067\u304d\u305f\u304b\u3089\u30e8\u30b7\u3002<\/p>\n<hr \/>\n<p>\u660e\u65e5\u306e\u591c\u304f\u3089\u3044\u306b\u4eca\u56de\u306e\u8a2d\u5b9a\u3092\u6e05\u66f8\u3057\u3066GitHub\u306b\u4e0a\u3052\u308b\u4e88\u5b9a\u3002<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u624b\u623b\u308a\u304c&#8230; 1\u65e5\u76ee 2\u65e5\u76ee 3\u65e5\u76ee COC\u304b\u3089BultIn LSP\u3078\u79fb\u884c rust-tools \u304c [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-45201","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>- Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/45201-2\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:description\" content=\"\u624b\u623b\u308a\u304c&#8230; 1\u65e5\u76ee 2\u65e5\u76ee 3\u65e5\u76ee COC\u304b\u3089BultIn LSP\u3078\u79fb\u884c rust-tools \u304c [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/45201-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-14T03:52:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-28T18:11:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d5d4737434c4406cf10b7\/26-0.png\" \/>\n<meta name=\"author\" content=\"\u96c5, \u609f\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u96c5, \u609f\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/45201-2\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/45201-2\/\",\"name\":\"- Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-07-14T03:52:19+00:00\",\"dateModified\":\"2024-04-28T18:11:25+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/f044a4b7fa4ee2701702942002419ca6\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/45201-2\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/f044a4b7fa4ee2701702942002419ca6\",\"name\":\"\u96c5, \u609f\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e71a913e914f1aad1efc391f92084294bac54bc782acd289638580134cf667a6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e71a913e914f1aad1efc391f92084294bac54bc782acd289638580134cf667a6?s=96&d=mm&r=g\",\"caption\":\"\u96c5, \u609f\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yawu\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/45201-2\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"- Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/45201-2\/","og_locale":"zh_CN","og_type":"article","og_description":"\u624b\u623b\u308a\u304c&#8230; 1\u65e5\u76ee 2\u65e5\u76ee 3\u65e5\u76ee COC\u304b\u3089BultIn LSP\u3078\u79fb\u884c rust-tools \u304c [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/45201-2\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-07-14T03:52:19+00:00","article_modified_time":"2024-04-28T18:11:25+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d5d4737434c4406cf10b7\/26-0.png"}],"author":"\u96c5, \u609f","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u96c5, \u609f","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"4 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/45201-2\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/45201-2\/","name":"- Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-07-14T03:52:19+00:00","dateModified":"2024-04-28T18:11:25+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/f044a4b7fa4ee2701702942002419ca6"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/45201-2\/"]}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/f044a4b7fa4ee2701702942002419ca6","name":"\u96c5, \u609f","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e71a913e914f1aad1efc391f92084294bac54bc782acd289638580134cf667a6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e71a913e914f1aad1efc391f92084294bac54bc782acd289638580134cf667a6?s=96&d=mm&r=g","caption":"\u96c5, \u609f"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yawu\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/45201-2\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/45201","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=45201"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/45201\/revisions"}],"predecessor-version":[{"id":74089,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/45201\/revisions\/74089"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=45201"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=45201"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=45201"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}