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另一个 autocommand。这次它在读取任何文件后使用。它后面的复杂内容会检查 '" 标记是否已定义,如果已定义,则跳到它。它不会对提交或 rebase 消息这样做,因为它们可能与上次不同,当使用 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现在每个制表符都显示为 ^I。在每行的末尾显示一个 $,以便您可以发现原本无法察觉的尾随空格。缺点是,当文件中有很多制表符时,这看起来很丑陋。如果您拥有彩色终端,或使用 GUI,Vim 可以将空格和制表符显示为突出显示的字符。使用 'listchars' 选项
:set listchars=tab:>-,trail:-现在每个制表符都将显示为“>---”(带有或多或少的“-”)而尾随空白将显示为“-”。看起来好多了,不是吗?
'iskeyword'
选项指定哪些字符可以出现在单词中:set iskeyword
:set iskeyword+=- :set iskeyword
:set iskeyword-=_ :set iskeyword
<Enter>
才能继续。您可以将 'cmdheight' 选项设置为用于显示信息的行的数量。例如:set cmdheight=3这意味着用于编辑文本的空间会减少,因此这是一个折衷方案。