vim【定制自己的vim、编辑多个文件】
2020-01-19 本文已影响0人
窗外的雪儿飞
7. 定制自己的vim
-
- vimrc文件
-
如果你厌倦了手工键入常用命令,或者要使你喜好的选项和映射一次性准备好,这时可以统统写入到
vimrc(vim run command)的文件里,Vim在启动的时会读取这个文件。 -
:read {filePath}命令:读取文件到当前vim编辑器里边。 -
:set filetype={fileNameSuffix}命令:设置当前vim窗口中文件的临时类型。// vimrc位置: 1.Unix and OS/2: ~/.vimrc 2. Windows: $VIM\_vimrc // 设置兼容性 set nocompatible // 设置历史命令缓存数量 set history=50 // 设置鼠标支持 set mouse=a // 打开语法高亮 set syntax on // 设置高亮检索 set hlsearch // 设置自动缩进 set autoindent // 设置缩进宽度 set shiftwidth=4
-
- 简单的映射
- 一个映射可以把一连串vim命令用一个按键来表示。
- 如:用一个功能键或者字符串,将某个word单词,变成{word},可以使用
:map命令。 :map <F5> i{<Esc>ea}<Esc>
-
- 选项窗口
-
:options命令:在帮助主题中寻找或设置相应的选项。 -
set all命令:查看所有的设置选项
-
- 常用选项
-
:help {options}:查看某个选项的帮助。 -
set {options}&:{options}:修改为默认值。 -
set nowrap:不要折行。 -
set sidescroll=10:自动左右滚动10个字符。 -
set whichwrap=b,s,<,>,h,l,[,]:Normal和Insert模式下跨行移动命令。 -
set cmdheight=3:设置命令行高度为3。
-
- 使用高亮
-
syntax enable:打开语法支持。 -
syntax clear:关闭当前高亮。 -
colorscheme {themeName}:打开不同的颜色主题。
8. 编辑多个文件
-
- 编辑另一个文件
-
:edit {fileName}:编辑另一个文件。 -
:hide edit {fileName}:隐藏编辑另一个文件,不进行保存当前缓冲区的内容。 -
:edit! {fileName}:强制编辑另一个文件,不进行保存当前缓冲区的内容。
-
- 文件列表
-
- 打开多个文件
vim fileName1 fileName2 fileName3
-
- 文件列表,当前在编辑哪个文件
-
:args命令(arguments): 显示当前的文件列表,当前文件以[]括起来。
-
- 文件列表中的切换
-
:next命令:打开编辑下一个文件。 -
:next!命令:强制打开编辑下一个文件。 -
:wnext命令:完成两个单独的命令。即::write :next -
:previous命令:打开编辑上一个文件。 -
:wprevious命令:保存当前文件,打开编辑上一个文件。 -
:last命令:打开最后一个文件,wlast命令。 -
:first命令:打开第一个文件,wfirst命令。 -
:2next命令:使用计数命令,向前跳过两个文件。
-
- 自动保存
-
:set autowrite:在不同的文件转移时,不需要每次都执行write命令。 -
:set noautowrite:关闭自动保存。- 备注:与word自动保存不同,过一段时间会自动保存,指某个事件发生时自动保存这个文件。
-
- 编辑另一个文件列表
-
args fileName1 fileName2 fileName:优点是不用重启Vim,就可以重新定义一个文件列表。 -
args *.{Filename Suffix}:支持通配符。
-
- 最后文件提醒
- 当你有一个文件列表要编辑时,Vim会假设你要全部编辑它们,如果你要退出,就需要再执行一个退出命令。
-
- 切换到另一文件
-
-
CTRL-^:两个文件之间快速的切换。
-
args fileName1 fileName2打开文件之后,再使用了:next或者previous之后,可以使用这个命令非常方便的在两个文件中进行切换。
-
-
- 多个文件之间的标记。
- 全局标记:使用大写字母命名标记。
- 如:
args fileName1后使用m{markFlag},这个时候去别的文件之后可以使用'或者`跳转到自定义标记的位置。 - 如果你删除了局部标记所在的行,也就相当于删除了这个局部标记。与全局标记不同,全局标记会一直存在下去。
- 如:
- 预定义标记
- `'':关闭文件时的光标的位置。
- `.:文件最后一次修改的地方。
- 在多文件中也可以使用
CTRL-i和CTRL-o两个同样试用。
-
- 备份
-
:set backup:生成备份文件,文件名为原文件名加一个~。- 备注:
ZZ进行退出,是不能生成备份文件的,需要使用:write。
- 备注:
-
:set backupext=.bak:修改生成一个名为原文件名加.bak的备份文件。 -
:set patchmode=.orig:保存一份修改前的原始文件作为副本,同时后缀名为.orig。
-
- 在文件之间复制粘贴
-
- 简单的复制粘贴
-
:edit {fileName}打开你要找的文件,然后/{检索内容}搜索你要复制的内容,然后v进入可视模式选择你要复制的内容,然后y复制,然后:edit {fileName}回到你要粘贴的文件,之后/{检索内容}搜索你要粘贴的位置,最后p粘贴刚刚复制的文本。
-
- 使用寄存器
- 复制多个独立的文本到另一个文件中时,这个时候可以使用寄存器,使用
a到z的字母作为寄存器的名字。- 使用可视模式选择文本,然后
"{寄存器名称},即:把一整块文本复制到寄存器中。
- 使用可视模式选择文本,然后
-
"fyas:把一个句子复制到名为f(first)的寄存器中。 -
"l3Y:把3个整行的内容复制到名为l(line)的寄存器中。 -
"bp:取出寄存器b中的内容文本。 -
wdaw:删除一个word并将其存入名为w(word)的寄存器中。
-
- 向文件中追加内容
-
:read {fileName}:向当前文件进行追加{fileName}文件内容。 -
:write >> {fileName}:将当前文件追加到文件名为{fileName}的文件中去,只能追加到文件的最后。 -
:write {newFileName}:将当前文件写入到名为{newFileName}新文件中去。 -
:'<,'> write >> {newFileName}:在Visual模式下也可以进行选择要写入的文本。
-
- 查看文件
-
vim {fileName}:直接打开编辑文件,可以读写。 -
vim -R {fileNmae}:以只读模式打开文件。 -
vim -M {fileNmae}:强制性的避免对文件进行修改,其中-M选项是告诉Vim工作于viewer模式中。 -
:set modifiable+:set write命令组合让viewer模式下的文件进行读写。
-
- 更改文件名
-
:write {filename}:将当前文件写入到新的文件中。 -
saveas {filename}:将当前文件进行另存为操作,且将新文件直接打开。 -
:file {filename}:与saveas功能相似,也可以实现文件名的更改。