经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 软件/图像 » Vim » 查看文章
入坑!VIM编辑器(最强整理版)
来源:w3xue  时间:2018/12/11 10:04:33  对本文有异议

VIM的三种模式

1.jpg

VIM 小抄图

2.jpg

VIM具体操作

进入vi的命令

vi filename :打开或新建文件,并将光标置于第一行首 
vi +n filename :打开文件,并将光标置于第n行首 
vi + filename :打开文件,并将光标置于最后一行首 
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename 
vi filename....filename :打开多个文件,依次进行编辑

移动光标命令

  • 操作在命令模式下

j 或下箭头 向下移动一行
k 或上箭头 向上移动一行
h 或左箭头 左移一个字符
l 或右箭头 右移一个字符
w 右移一个词
W 右移一个以空格分隔的词 
b 左移一个词
B 左移一个以空格分隔的词
0 移到行首
Ctrl-F 向前翻页
Ctrl-B 向后翻页
nG 到第n行
G 到最后一行

插入文本命令

  • 操作在命令模式下

i  在当前字符前插入文本   
I  在行首插入文本       
a  在当前字符后添加文本   
A  在行末添加文本      
o  在当前行后面插入一空行  
O  在当前行前面插入一空行  
R  以改写方式输入文本

替换文本

$     到行尾
(     到句子的开头 
)     到句子的末尾
{     到段落的开头
}     到段落的末尾

文本操作

  • 在命令模式下

r   替换一个字符
c   修改文本直到按下Esc健 
cw  修改下一个词
cnw  修改接下来的n个词

删除操作

  • 在命令模式下

x 删除光标处的单个字符 
dd 删除光标所在行 
dw 删除当前字符到单词尾(包括空格)的所有字符 
de 删除当前字符到单词尾(不包括单词尾部的空格)的所有字符 
d$ 删除当前字符到行尾的所有字符 
d^ 删除当前字符到行首的所有字符 
J 删除光标所在行行尾的换行符,相当于合并当前行和下一行的内容

文本编辑

yy 将一行文本移到缺省缓冲区中 
yn 将下一个词移到缺省缓冲区中
ynw 将后面的n个词移到缺省缓冲区中
p  如果缺省缓冲区中包含一行文本,则在当前    
  行后面插入一个空行井将缺省缓冲区中的声    
  容粘贴到这一行中;如果缺省缓冲区中包含    
  多个词,把这些词粘贴到光标的右边.     

P  如果缺省缓冲区中包含一行文本,则正当前     
  行前面插入一个空行井将缺省缓冲区中的内     
  容粘贴到这一行中;如果缺省缓冲区中包含    
  多个词,把这些词粘贴到光标的左边.

保存退出

zz          保存并退出(在命令行模式下)

在末行模式下::w filename     写入文件:W          写入文件:x         保存(如果当前文件修改过)并退出 
:q!         不保存文件,直接退出(强制退出):q         退出vi

编辑模式的编辑键操作

方向键进行上下左右方向的光标移动 
Home快速定位光标到行首
End快速定位光标到行尾
PageUp进行文本的向上翻页 
PageDown进行文本的向下翻页
Backspace删除光标左侧的字符
Del删除光标位置的字符

替换操作

  • 在末行模式下

:s/old/new 将当前行中查找到的第一个字符“old” 串替换为“new”:s/old/new/g 将当前行中查找到的所有字符串“old” 替换为“new”:#,#s/old/new/g 在行号“#,#”范围内替换所有的字符串“old”为“new”:%s/old/new/g 在整个文件范围内替换所有的字符串“old”为“new”:s/old/new/c 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认

撤消操作

  • 在命令模式下

u 取消最近一次的操作,并恢复操作结果,可以多次使用u命令恢复已进行的多步操作 

U 取消对当前行进行的所有操作 

Ctrl + r 对使用u命令撤销的操作进行恢复

复制与粘贴操作

  • 在命令模式下

yy 复制当前行整行的内容到vi缓冲区 

yw 复制当前光标到单词尾字符的内容到vi缓冲区 

y$ 复制当前光标到行尾的内容到vi缓冲区 

y^ 复制当前光标到行首的内容到vi缓冲区

p 读取vi缓冲区中的内容,并粘贴到光标当前的位置(不覆盖文件已有的内容)

字符串查找操作

  • 在命令模式下

/word 从上而下在文件中查找字符串“word” 

?word 从下而上在文件中查找字符串“word”

n 定位下一个匹配的被查找字符串 

N 定位上一个匹配的被查找字符串

快捷键

ctrl-a : 把光标移动到命令行最开始的地方。 
ctrl-e : 把光标移动到命令行末尾。 
ctrl-u : 清除命令行中光标所处位置之前的所有字符。 
ctrl-k : 清除从提示符所在位置到行末尾之间的字符
ctrl-w : 清除左边的字段 
ctrl-y : 将会贴上被ctrl-u 或者 ctrl-k 或者 ctrl-w清除的部分。 
ctrl-r : 将自动在命令历史缓存中增量搜索后面入的字符。 
tab : 命令行自动补全-自动补全当前的命令行。如果启用自动补全脚本命令参数和选项也可以自动补齐。

ctrl-l : 清屏


 友情链接: NPS