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
功能相似,也可以实现文件名的更改。
网友评论