Nvim :help
頁面,使用 tree-sitter-vimdoc 解析器從 來源 產生。
:edit $MYVIMRC如果您還沒有 vimrc 檔案,請參閱 init.vim 以了解您可以在哪裡建立 vimrc 檔案。
set ignorecase若要使此新行生效,您需要退出 Vim 並再次啟動它。稍後您將學習如何在不退出 Vim 的情況下執行此操作。
:exe 'edit' stdpath('config').'/init.vim'在本節中,我們將說明此檔案中可以指定的各種命令。這將為您提供有關如何設定您自己的偏好的提示。但並非所有內容都會被解釋。請使用「:help」命令來尋找更多資訊。
set backup這會告訴 Vim 在覆寫檔案時保留檔案的備份副本。備份檔案的名稱會與原始檔案相同,並加上「~」。請參閱 07.4
set history=50
map Q gq這定義了一個按鍵映射。下一節會詳細介紹。這會將「Q」命令定義為使用「gq」運算子進行格式化。否則,「Q」命令會重複上次記錄的暫存器。
vnoremap _g y:exe "grep /" .. escape(@", '\\/') .. "/ *.c *.h"<CR>此映射會複製視覺選取的文字,並在 C 檔案中搜尋它。這是一個複雜的映射。您可以看到,映射可以用來執行相當複雜的事情。不過,它只是一系列像您輸入的命令一樣執行的命令。
filetype plugin indent on這會開啟三個非常聰明的機制:1. 檔案類型偵測。每當您開始編輯檔案時,Vim 都會嘗試找出這是一個什麼類型的檔案。當您編輯「main.c」時,Vim 會看到「.c」擴充功能,並將其識別為「c」檔案類型。當您編輯以「#!/bin/sh」開頭的檔案時,Vim 會將其識別為「sh」檔案類型。檔案類型偵測會用於語法高亮和其他兩個項目。請參閱 filetypes。
augroup RestoreCursor autocmd! autocmd BufReadPre * autocmd FileType <buffer> ++once \ let s:line = line("'\"") \ | if s:line >= 1 && s:line <= line("$") && &filetype !~# 'commit' \ && index(['xxd', 'gitrebase'], &filetype) == -1 \ | execute "normal! g`\"" \ | endif augroup END另一個自動命令。這次它用於讀取任何檔案之後。它之後的複雜內容會檢查是否已定義「"」標記,如果已定義,則跳至該標記。它不會針對提交或重新設定基準訊息執行此操作,這些訊息可能與上次不同,並且當使用 xxd(1) 來篩選和編輯二進位檔案時,這些檔案會來回轉換輸入檔案,導致它們具有雙重性質。另請參閱 using-xxd。
command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis \ | wincmd p | diffthis這會新增「:DiffOrig」命令。在修改過的緩衝區中使用此命令,以查看與其載入的檔案的差異。請參閱 diff 和 :DiffOrig。
set nolangremap防止 langmap 選項應用於從映射產生的字元。如果設定 (預設),這可能會中斷外掛程式 (但它是向後相容的)。請參閱 'langremap'。
:map <F5> i{<Esc>ea}<Esc>
<F5>
,方法是輸入四個字元。同樣地,<Esc>
並非透過按下 <Esc>
鍵輸入,而是透過輸入五個字元。閱讀手冊時請注意這種差異!<F5>
F5 功能鍵。這是觸發按鍵,會在按下按鍵時執行命令。<Esc>
鍵會結束插入模式。:map \p i(<Esc>ea)<Esc> :map \c i{<Esc>ea}<Esc>您需要快速依序輸入 \ 和 p,以便 Vim 知道它們屬於一起。
example_package
,請使用下列命令packadd example_package就這樣!現在您可以找到有關此外掛程式的說明
:help example_package這有效,因為當
:packadd
載入外掛程式時,它也會將套件目錄新增至 'runtimepath',以便可以找到說明檔案。mkdir -p ~/.local/share/nvim/site/pack/fancy
cd ~/.local/share/nvim/site/pack/fancy unzip /tmp/fancy.zip
packadd nohlsearch
au! nohlsearch
mkdir -p ~/.local/share/nvim/site/plugin cp /tmp/yourplugin.vim ~/.local/share/nvim/site/plugin就這樣!現在您可以使用此外掛程式中定義的命令。
:filetype plugin on就是這樣!請參閱 vimrc-filetype。
mkdir -p ~/.local/share/nvim/site/ftplugin mv thefile ~/.local/share/nvim/site/ftplugin/stuff.vim如果該檔案已經存在,表示你已經有了一個用於 "stuff" 的插件。你可能需要檢查現有的插件是否與你正在新增的插件衝突。如果沒問題,你可以給新插件另一個名稱
mv thefile ~/.local/share/nvim/site/ftplugin/stuff_too.vim底線符號用於分隔檔案類型名稱和其餘部分,其餘部分可以是任何內容。 如果你使用 "otherstuff.vim" 它將無法正常運作,它將被載入為 "otherstuff" 檔案類型。
ftplugin/<filetype>.vim ftplugin/<filetype>_<name>.vim ftplugin/<filetype>/<name>.vim這裡 "<name>" 可以是你喜歡的任何名稱。以下是 Unix 系統中用於 "stuff" 檔案類型的範例
~/.local/share/nvim/site/ftplugin/stuff.vim ~/.local/share/nvim/site/ftplugin/stuff_def.vim ~/.local/share/nvim/site/ftplugin/stuff/header.vim
<filetype>
部分是插件要使用的檔案類型名稱。只有這種檔案類型的檔案才會使用插件中的設定。插件檔案的 <name>
部分並不重要,你可以使用它來為同一檔案類型新增多個插件。請注意,它必須以 ".vim" 或 ".lua" 結尾。doc/
的子資料夾中)。:!mkdir -p ~/.local/share/nvim/site/doc現在,將說明檔案複製到 "doc" 目錄
:!cp my-plugin/my-plugin-doc.txt ~/.local/share/nvim/site/doc接下來是訣竅,它允許你跳轉到新說明檔案中的主題。使用 :helptags 命令產生本機標籤檔案
:helptags ~/.local/share/nvim/site/doc當你執行以下操作時,你可以看到本機說明檔案的條目
:help local-additions本機說明檔案的標題行會自動新增到此區段。在那裡你可以看到已新增哪些本機說明檔案,並透過標籤跳轉到它們。
:options這會開啟一個新視窗,其中列出了帶有一行解釋的選項。這些選項按主題分組。將游標移動到主題上,然後按下
<Enter>
以跳轉到該主題。再次按下 <Enter>
以跳轉回。或者使用 CTRL-O
。<Enter>
時,該行會變更為<Enter>
以套用新值。例如,將游標向上移動幾行到此行<Enter>
以套用新值。當你現在移動游標時,你會注意到文字會在到達邊界之前開始滾動。這就是 'scrolloff' 選項的作用,它指定滾動開始的視窗邊界偏移量。:help 'wrap'如果你弄亂了選項值,你可以將其設定回預設值,方法是在選項名稱後加上一個 & 符號 (&)。範例
:set iskeyword&
:set nowrap當你移動到未顯示的文字時,Vim 會自動滾動文字。若要查看十個字元的上下文,請執行此操作
:set sidescroll=10這不會變更檔案中的文字,只會變更其顯示方式。
:set whichwrap=b,s這允許
<BS>
鍵在行的第一個位置使用時,將游標移動到前一行的末尾。而 <Space>
鍵會將游標從一行的末尾移動到下一行的開頭。<Left>
和 <Right>
也換行,請使用此命令:set whichwrap=b,s,<,>這仍然僅適用於一般模式。若要讓
<Left>
和 <Right>
在插入模式中也執行此操作:set whichwrap=b,s,<,>,[,]還可以新增其他幾個標誌,請參閱 'whichwrap'。
:set list現在每個 Tab 鍵都顯示為 ^I。並且在每行的末尾都會顯示一個 $ 符號,以便你可以發現否則會被忽略的尾隨空格。缺點是當檔案中有很多 Tab 鍵時,這看起來會很醜。如果你有彩色終端機,或正在使用 GUI,Vim 可以將空格和 Tab 鍵顯示為反白字元。使用 'listchars' 選項
:set listchars=tab:>-,trail:-現在每個 Tab 鍵都將顯示為 ">---"(帶有或多或少的 "-"),而尾隨空格將顯示為 "-"。看起來好多了,不是嗎?
:set iskeyword
:set iskeyword+=- :set iskeyword
:set iskeyword-=_ :set iskeyword
<Enter>
才能繼續。你可以將 'cmdheight' 選項設定為用於訊息的行數。範例:set cmdheight=3這確實意味著編輯文字的空間會變少,因此這是一種妥協。