Yuan Neovim 備忘

依賴的套件

  • ripgrep 全文搜尋用
  • tree-sitter 快速且增量式的語法剖析器parser
  • tree-sitter-bash
  • tree-sitter-cli
  • imagemagick
  • ueberzugpp

基本快速鍵

重要鍵

  • leader key: \
  • window key: ctrl+w
    • move cursor: (方向鍵)

擴充自行設定的快速鍵

  • <F6> 可以回朔到開啟檔案以來的任何歷史,還會標出修改的地方
  • <F7> 看看你設定了哪些變數、函數,也可以快速跳轉
  • <F8>: NeoTree: 查看已經開啟的檔案
  • <F9>: NeoTree
  • <F10>: git status
  • <leader>fT: 浮動NeoTree
  • <leader>fB: 已開啟的檔案

編輯習慣(已經覆寫)

  • shift+方向鍵(傳統): 選取文字(傳統習慣)
    • PS. 不能用jk是因為 shift+j shift+k有被其他功能綁定不覆寫是想順便習慣vim用法
  • alt+方向鍵(傳統/jk):移動整行
  • ctrl+alt+shaft+方向鍵(傳統/jk):向上/向下複製整行
  • tab縮排(含輸入模式的shift+tab傳統習慣對應)

剪貼簿

  • 輸入模式
    • ctrl+v: 貼上
  • 選取模式
    • ctrl+x: 剪下
    • ctrl+c: 複製
    • ctrl+v: 取代貼上

基本Command

  • :Neotree float git_status git_base=main
  • :verbose map <C-,>
  • echo getchar()

資料夾結構

dot_config/nvim
├── init.vim #主要設定進入點 傳統vim設定檔 (傳統語法兼容用)
├── lua
│   ├── init.lua #主要設定進入點 新式給nvim專用設定
│   ├── config
│   │   ├── gui.lua
│   │   ├── lazy.lua
│   │   └── options.lua
│   └── plugins
│       └── example.lua #LazyNvim給的範例已經被第一段截斷掉所以此腳本將不會執行
└── Readme.md

LSP -Language Server Protocol

因為設定方式與結構太過複雜,故獨立開

和LSP有關的目錄結構

~/.config/nvim/
├── lua/
│   ├── plugins/
│   │   ├── lsp.lua               <-- 所有 LSP / cmp 相關 plugin 定義
│   ├── lsp/
│   │   ├── init.lua              <-- 初始化 Mason / LSP 等
│   │   ├── config/
│   │   │   ├── mason.lua         <-- 1. Mason 設定,需要的程式語言安裝都在這定義
│   │   │   ├── lspconfig.lua     <-- 2. 載入各語言的設定
│   │   │   └── cmp.lua           <-- nvim-cmp 設定
│   │   └── servers/
│   │       ├── php.lua
│   │       ├── pyright.lua
│   │       └── ...
│   └──(可另外有 config/、keymaps/ 等其他模組)

代找外掛

  • Align

neo-tree

{ "<F9>", "<cmd>Neotree toggle<cr>", desc = "NeoTree" },
{ "<leader>e", "<Cmd>Neotree reveal<CR>" },
{ "<leader>ft", "<cmd>Neotree toggle<cr>", desc = "NeoTree" },
{ "<leader>fT", "<cmd>Neotree float<cr>", desc = "NeoTree Float" },
{ "<leader>fF", "<cmd>Neotree filesystem float<cr>", desc = "NeoTree Filesystem Float" },
{ "<leader>fG", "<cmd>Neotree git_status float<cr>", desc = "NeoTree Git Status Float" },
{ "<leader>fB", "<cmd>Neotree buffers float<cr>", desc = "NeoTree Buffers Float" }

在當前NeoTree視窗

  • P: 預覽開關