vim中操作的快捷键非常多,功能十分强大,当熟练实用一些快捷键,可以起到事半功倍的效果,效率提高很多。本文记录一些高效的文档修改相关的快捷键,以备使用。
格式:
[开始位置] ———— 可以定位开始的位置,默认为光标所在位置
gu ———— 选择范围内转小写
gU ———— 选择范围内转大写
[结束位置] ———— 可以定位结束位置,可跟着类似w,6G,G,gg等定位操作
注:以下命令无需进入命令行模式,vim打开文件直接键入命令即可
1、“字母”级别的大小写转换
如果想对光标所在位置的字母 进行大小写转换 ,直接 shift + ~
2、“单词”级别的大小写转换
对光标所在位置的整个单词进行大小写转换
guw 或 gue # 光标所在位置的单词转小写
gUw 或 gUe # 光标所在位置的单词转大写
gu3w 或 gu3e # 光标后面的3个单词转小写
gU3w 或 gU3e # 光标后面的3个单词转大写
3、“行”级别的大小写转换
guu # 光标所在的行转小写
gUU # 光标所在的行转大写
gu0 # 光标位置到行首转小写,不包含光标所在字母
gU0 # 光标位置到行首转大写,不包含光标所在字母
gu$ # 光标位置到行尾转小写,包含光标所在字母
gU$ # 光标位置到行尾转大写,包含光标所在字母
gu1G # 光标位置所在行到文章第一行转小写
gU1G # 光标位置所在行到文章第一行转大写
guG # 光标位置所在行到文章末尾转小写
gUG # 光标位置所在行到文章末尾转大写
4、“文件”级别的大小写转换
1GguG 或 ggguG # 整个文章全部转小写
1GgUG 或 gggUG # 整个文章全部转大写
注:[1G或gg]:定位开始位置,[gu或gU]:定义转小写或大写 [G]:定位结束位置
vi/vim 中可以使用 :s 命令来替换字符串以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vim 真是强大!!!!!!)
:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/vivian/sky/(等同于:g/vivian/s//sky/)替换每一行的第一个 vivian 为 sky
:%s/vivian/sky/g(等同于:g/vivian/s//sky/g)替换每一行中所有 vivian 为 sky
:%s/vivian/sky/g实现文件及的替换,把整个文件内的vivian替换为sky。
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/
:%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 /):/oradata/apras/替换成/user01/apras1/
一、如果在终端中开没有打开vim,可以:
横向分割显示:
$ vim -o filename1 filename2
纵向分割显示:
$ vim -O filename1 filename2
二、如果已经用vim打开了一个文件,想要在窗口中同时再打开另一个文件:
横向分割显示:
:vs filename
纵向分割显示:
:sp filename
其中,vs可以用vsplit替换,sp可以用split替换。
如果finename不存在,则会新建该文件并打开。
三、关闭窗口
关闭光标所在的窗口:
:q 或 :close
关闭除光标所在的窗口之外的其他窗口:
:only
关闭所有窗口:
:qa
四、切换窗口
打开了多个窗口,需要在窗口之间切换时:
ctrl + w w
即按住ctrl键,再按两下w键。
或者ctrl + w
即按住ctrl键,按一次w键,再按一次表示方向的h或j或k或l,则光标会切换到当前窗口的 左|下|上|右 侧的窗口。
vim -d file1 file2
或
vimdiff file1 file2
:vert diffsplit file2
如果没有用vert命令,diffsplit则会分上下两个窗口。
如果已经用split方式打开了两个文件file1,file2,又想比较两文件的不同。
分别在两个窗口里面输入命令:
:diffthis
如果更改了某个窗口的内容,vim又没有自动更新diff检查,可以使用如下命令更新:
:diffupdate
定位到不同点:
[c 跳到前一个不同点
]c 跳到后一个不同点
在窗口间跳转:
ctrl-w w 跳到下一个窗口
ctrl-w h 跳到左侧窗口
ctrl-w l 跳到右侧窗口
ctrl-w j 跳到下方的窗口
ctrl-w k 跳到上方的窗口
合并文档:
dp 将差异点的当前文档内容应用到另一文档(diff put)
do 将差异点的另一文档的内容拷贝到当前文档(diff get)
上下文的展开和查看
比较和合并文件的时候经常需要结合上下文来确定最终要采取的操作。Vimdiff 缺省是会把不同之处上下各 6 行的文本都显示出来以供参考。其他的相同的文本行被自动折叠。如果希望修改缺省的上下文行数为3行,可以这样设置:
:set diffopt=context:3
可以用简单的折叠命令来临时展开被折叠的相同的文本行:
zo (folding open, z这个字母看上去比较像折叠的纸)
然后可以用下列命令来重新折叠:
zc (folding close)
vim打开二进制文件时会是乱码,我们可以在命令模式使用:%!xxd 来转换为16进制进行查看,可以使用%xxd -r恢复回来。
:%!xxd
xxd是linux的一个命令,vim可以通过”!”来调用外部命令,其功能就是进行十六进制的dump或者反之。
参考
参考:https://www.cnblogs.com/zhanglanyun/archive/2011/12/19/2293695.html
https://www.cnblogs.com/taskiller/archive/2012/07/26/2610583.html