# 緣由
看到這篇你可能會懷疑為什麼 nvim 是寫在 windows 的分類裡面。
別問哪麼多,因為我是在 window 裡面裝的當然…。
對我來說 neovim 絕對比 vscode 香太多了,撇開套件非堂多之外。能用純鍵盤打字是吸引的。
# 什麼是 vim, 以及什麼是 neovim
vim 是款編輯器,對於普通的使用者來說有點類似 vscode, 但他是純命令控制的方式。
而 neovim 是基於 vim 的部分改進,而兩個是不同的作者在維護的。
具體可以看參考資料
# neovim 的安裝
-
neovim 安裝
-
設定檔案。neovim 的精華在於它的設定檔案部分。
在 windows 底下 neovim 的路徑在…
~/AppData/Local/nvim/init.vim |
- 以下是我的設定檔案。
set number | |
let g:indent_guides_guide_size = 1 | |
let g:indent_guides_start_level = 2 | |
syntax on | |
set background=dark | |
"tab-settings | |
set list listchars=tab:»·,trail:· | |
nnoremap <Tab> >> | |
nnoremap <S-Tab> << | |
inoremap <S-Tab> <C-d> | |
set tabstop=4 | |
set shiftwidth=4 | |
set shiftround | |
set expandtab | |
"install | |
call plug#begin() | |
Plug 'lazywei/vim-doc-tw' | |
Plug 'Yggdroot/indentLine' | |
Plug 'vim-airline/vim-airline' | |
Plug 'vim-airline/vim-airline-themes' | |
Plug 'preservim/nerdcommenter' | |
filetype plugin on | |
Plug 'luochen1990/rainbow' | |
Plug 'preservim/nerdtree' | |
Plug 'honza/vim-snippets' | |
Plug 'neoclide/coc.nvim', {'branch': 'release'} | |
Plug 'octol/vim-cpp-enhanced-highlight' | |
Plug 'iamcco/markdown-preview.nvim', { 'do': { -> mkdp#util#install() }, 'for': ['markdown', 'vim-plug']} | |
call plug#end() | |
" 代碼補全 | |
function! CheckBackspace() abort | |
let col = col('.') - 1 | |
return !col || getline('.')[col - 1] =~# '\s' | |
endfunction | |
inoremap <silent><expr> <Tab> | |
\ coc#pum#visible() ? coc#pum#next(1) : | |
\ CheckBackspace() ? "\<Tab>" : | |
\ coc#refresh() | |
"markdown | |
nmap <C-s> <Plug>MarkdownPreview | |
nmap <M-s> <Plug>MarkdownPreviewStop | |
nmap <C-p> <Plug>MarkdownPreviewToggle | |
let g:mkdp_auto_start = 0 | |
" | |
let g:NERDCreateDefaultMappings = 1 | |
let g:NERDSpaceDelims = 1 | |
let g:NERDCustomDelimiters = { 'c': { 'left': '/**','right': '*/' } } | |
" NERDtree | |
autocmd vimenter * NERDTree | |
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif | |
nnoremap <leader>n :NERDTreeFocus<CR> | |
nnoremap <C-n> :NERDTree<CR> | |
nnoremap <C-t> :NERDTreeToggle<CR> | |
nnoremap <C-f> :NERDTreeFind<CR> | |
autocmd StdinReadPre * let s:std_in=1 | |
autocmd VimEnter * NERDTree | if argc() > 0 || exists("s:std_in") | wincmd p | endif |
這裡就不解釋具體含意。但如果要安裝套件時,必須先存檔或離開檔案,再次進入後要輸入 :PlugInstall
, 等待安裝完成就可以開始設定了。
# 參考資料
vim 的歷史
neovim & vim 的歷史
vim 的操作 1
指令
vim 的操作 2
裡面有關於vim 的設定參考。