vim命令

帮助

vimtutor 查看使用说明 :help feature 获取feature 的相关信息 :help doc-file-list获取帮助文件的完整列表

CONTROL+] 打开链接 CONTROL+o 返回 :q 退出帮助文档

修改

dw删除到字的末尾
daw删除一个单词
dd删除行
x删除字符

dl 删除当前字符(与命令x相同)
d0 从行的开始删除
d^ 从行开始的第一个字符(不包括空格和tab字符)开始删除
dw 删除到字的尾部
d3w 删除到第三个字的尾部
db 删除到字的开始
d) 删除到句子尾部
d( 删除到句子头
d} 删除到段落尾部
d{ 删除到段落头
d/text 删除到text单词的下一次出现
D 删除到行尾
d$ 删除到行尾

cw 删除到字的末尾并进入插入模式

插入模式下:

ctrl+H 字符删除
ctrl+U 行删除
ctrl+W 字删除

替换

s 替换当前字符 S 替换当前行

~ 修改大小写

###代码注释 ####方法一 #####插入注释

按"control+v"进入列模式,上下键选择要注释的行
按大小“I”进入插入模式,输入"//",然后按下ESC(两下) #####取消注释 ctrl+v进入块选择模式,选中行首注释符号,按"d"

####方法二 替换命令 #####插入注释 :起始行号,结束行号s/^/注释符/g 例如:
在27 - 30行添加 // 注释
:27,30s#^#//#g

#####取消注释: :起始行号,结束行号s/^注释符//g 例如: 在27 - 30行删除 // 注释
:27,30s#^//##g

光标移到

w移动到下一个字的头部
e移动到当前字的尾部
b移动到前一个字头部

$ 行尾
0或^ 行首
文档头gg
文档尾G

浏览

命令模式下: ctrl+d 下翻半屏

ctrl+u 上翻半屏

ctrl+b上翻页

ctrl+f下翻页

行号+G :到第几行

例如

1G

:1

查找/搜索

/+pattern:从光标开始处向文件尾搜索pattern, n 重复查找命令,N反方向重复查找命令

?+pattern:从光标开始处向文件首搜索pattern

n:在同一方向重复上一次搜索命令

N:在反方向上重复上一次搜索命令

鼠标移动的一个单词上 按 * 搜索

替换:

:[g] [address] s/search-string/replacement-string[/option] addess:代表行

:s/p1/p2/g 将当前行中所有p1均用p2替代
:1,.s/p1/p2/g 将当前行之前的所有行的字符串p1替换为字符串p2
:1,$s/p1/p2/g 将所有出现的字符串p1替换为字符串p2 :g/chaper/s/ten/10/ 将第一次出现的包含字符串chaper的所有行中的字符串ten替换为字符串10 :%s/<ten>/10/g 将所有出现的字ten替换为字符串10 :.,.+10s/every/each/g 将出现的从当前行到后续10行内的每个字符串every替换为字符串each :s/<short>/"&"/ 将当前行中的字short替换为"short"(即将当前行中的字short用引号括起来) :n1,n2s/p1/p2/g 将第n1至n2行中所有p1均用p2替代

:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下

:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下

:n1,n2 d :将n1行到n2行之间的内容删除

Yank Delete 和Put

Yank(Y) 复制到通用缓冲区
Delete(Y)删除并放到通用缓冲区
Put(P) 把通用缓冲区的内容插入的当前文本

命名缓冲区

“+字母+yy 把当前行复制到字母的命名缓冲区
“+字母+p 把对应字母名字的缓冲区的内容复制到当前文档

缩进

插入模式下:

CONTROL+T 右缩进

CONTROL+D 左缩进

命令模式下:

>> 右缩进

<< 左缩进

标记

ma 设置标记,名字为a

‘a 定位到标记a的位置所在行的开始

`a 反引号将光标定位到标记字符的精确位置

d'a 删除当前行到标记a所标记行之间的文本

d`a 删除当前行到a标记字符处的所有文本

在命令中作为行号使用 :'m,.s/the/THE/g

编辑其他文件

:e[!] [filename] 编辑filename指定的文件,如果不指定 filename,继续编辑当前文件(load文件到当缓冲区即编辑区,可做刷新文件用)

:e# 关闭当前文件,打开上次编辑的文件

:n filename 打开新文件

vim中执行shell

:sh
CONTROL+D 或exit 退出

:!command vim中执行command命令
!!command 执行command命令,并把输出结果替换当前行
!行地址 command 对指定行执行command命令,并用输出结果替换

####Tab页

1. 配置

set tabpagemax=18 VIM默认只能打开10个标签页,在配置文件可以修改这个限制:

set showtabline=0 不显示标签栏 
set showtabline=1 这是默认设置,意思是,在创建标签页后才显示标签栏。
set showtabline=2 总是显示标签栏 

#####2. 命令行命令:

:tabe filename 用标签页打开文件 
:tabnew filename 用标签页打开文件 
:tab split 用标签页打开当期编辑的文件 
:tabf filename* 用标签页打开与通配符匹配的一个文件 
:tabs 显示所有标签页,> 指示当前页,+ 显示修改未保存

:tabc 关闭当前标签页,功能等同于:q :tabo 关闭所有标签页

:tabn 跳转后一个标签页

:tabp 跳转前一个标签页

:tabfirst 跳转第一个标签页

:tabr 跳转第一个标签页

:tablast 跳转最后一个标签页

:tabm 0/1/2 将当前标签页移动到第1/2/3个页面位置

:tabdo 对多个标签页同时执行命令,如

:tabdo %s/aaa/bbb/g

#####3. 操作命令:

gt 跳转后一个标签页
gT 跳转前一个标签页

####分屏

分屏启动Vim

使用大写的O参数来垂直分屏。
vim -On file1 file2 ...
使用小写的o参数来水平分屏。
vim -on file1 file2 ...
注释: n是数字,表示分成几个屏。

#####关闭分屏 关闭当前窗口。
Ctrl+W c
关闭当前窗口,如果只剩最后一个了,则退出Vim。
Ctrl+W q

#####分屏 上下分割当前打开的文件。
Ctrl+W s
上下分割,并打开一个新的文件。
:sp filename 左右分割当前打开的文件。
Ctrl+W v
左右分割,并打开一个新的文件。
:vsp filename

#####移动光标 Vi中的光标键是h, j, k, l,要在各个屏间切换,只需要先按一下Ctrl+W

把光标移到右边的屏。
Ctrl+W l 把光标移到左边的屏中。
Ctrl+W h 把光标移到上边的屏中。
Ctrl+W k 把光标移到下边的屏中。
Ctrl+W j 把光标移到下一个的屏中。
Ctrl+W w

#####移动分屏
这个功能还是使用了Vim的光标键,只不过都是大写。当然了,如果你的分屏很乱很复杂的话,这个功能可能会出现一些非常奇怪的症状。

向右移动。 Ctrl+W L 向左移动 Ctrl+W H 向上移动 Ctrl+W K 向下移动 Ctrl+W J

屏幕尺寸

下面是改变尺寸的一些操作,主要是高度,对于宽度你可以使用[Ctrl+W <]或是[Ctrl+W >],但这可能需要最新的版本才支持。

crl+w+数字 移动
resise 100调整高度

让所有的屏都有一样的高度。
Ctrl+W = 增加高度。
Ctrl+W +
减少高度。
Ctrl+W -

#####比较两个文件的差异

vim -d afilename b-filename

crl+p自动补全 crl+n

crl+v shift+i 输入 esc
gg + yG 复制全部
格式化全文: gg=G

% 到闭合的标签

. 重复上次操作
cit 删除标签内的

相关推荐