标签(空格分隔): vi 总结linux
vi是几乎全部类Unix/Linux系统下都默认装有的经常使用文本编辑工具。本文记录初学vi的一些小知识。shell
在命令行使用“vi”编辑文档时,包含通常模式、命令行模式、编辑模式。
使用vi filename
打开文件,就进入通常模式
。vim
通常模式 <-> 命令行模式
在通常模式界面使用符号“:”、“/”、“?”能够进入命令行模式,反之使用键盘左上角的“Esc”按键就能够从命令行模式回到通常模式。app
i:insert,在光标当前处插入 I:Insert,在光标所在行的行首插入,在第一个非空白字符前插入 a:append,在光标所在位置以后的一个符后插入 A:Append,在光标所在行的行尾插入 o:在光标所在行的下面,另起一行插入 O:在光标所在行的上面,另起一行插入 r:replace,替换光标所在位置的那一个字符,只替换一次 R:Replace,不断替换光标所在位置的字符,每替换字符光标都会日后移动,直到按下“Esc”为止。
在通常模式下移动光标状况相对复杂,能够分为如下几种状况。工具
1)可使用上下左右的箭头来移动 2)使用字母 h:光标左移一个字符的距离 j:光标向下移动一行 k:光标向上移动一行 l:光标右移一个字符的距离
w:光标日后移动,到达下一个单词(含标点)的词首处 W:与w同,忽略标点符号 e:光标往前移动,到达下一个单词(含标点)的词尾处 E:与e同,忽略标点符号 b:光标往前移动,达到本单词(含标点)的词首。若是当前位子是空白则达到左边第一个单词的词首 B:与b同,忽略标点符号 ge:光标往前移动,到达前一个单词的词尾处
符号^(shift+数字键6):光标移动到行首 数字0::光标移动到行首 符号$(美圆符号):光标移动到行尾 字符组合“g_”:光标移动到行尾 nh:n为数字,在当前行往左移动n个字符 nj:n为数字,向下移动n行 nk:n为数字,向上移动n行 nl:n为数字,在当前行往右移动n个字符 N + Enter:n为数字,向下移动n行
Ctrl + d:向上移动半页 Ctrl + u:向下移动半页 Ctrl + f:向上移动一页 Ctrl + b:向下移动一页
gg:光标移动到文件第一行的行首 G:光标移动到文件最后一行的行首 nG:n为数字,光标移动到文件第n行的行首
yy:复制光标所在行整行 nyy:n是数字,复制光标所在行整行及往下的n行 y1G:复制文件的第一行到光标所在行 yG:复制光标所在行到文件的最后一行 y0:复制光标所在行的行首字符到光标所在位置的字符之间的内容 y$:复制光标所在位置的字符到该行行尾字符之间的内容
x:删除右边的一个字符,相似键盘的delete键 X:删除左边的一个字符,相似键盘的BackSpace键 dd:删除/剪切当前行 ndd:n是数字,删除/剪切当前行及向下n行的数据 d1G:删除/剪切文件第一行到光标所在行之间的内容 dG:删除/剪切光标所在行到文件最后一行之间的内容 d0:删除/剪切光标所在行行首字符到光标所在字符之间的内容 d$:删除/剪切光标所在位置的字符到该行的行尾字符之间的内容
p:在光标所在行的下一行粘贴数据 P:在光标所在行的上一行粘贴数据
/word:向下查找字符串“word” ?word:向上查找字符串“word” n:重复执行前一个查找操做 N:“反向”执行前一个查找操做,与n相反
r:replace,替换光标所在位置的那一个字符,只替换一次 R:Replace,不断替换光标所在位置的字符,每替换字符光标都会日后移动,直到按下“Esc”为止。 “:n1,n2s/old/new/g”:n1和n2是数字,数字n2后的是小写s。表示把第n1行到第n2行之间的字符串“old”都换成“new”。经常使用“:1,$/old/new/g” “:n1,n2s/old/new/gc”:做用同上。最后多了个字符“c”,是confirm的首字母,表示每一个操做都会提示确认才会替换
相似“视图模式”下的选择,最让人以为新奇的莫过于块选择了。命令行
v:字符选择,结合光标的上下左右使用 V:行选择,结合光标的行上下移动使用 Ctrl + v:块选择,结合光标移动使用
当完成选择以后,能够进行删除、复制、剪切等操做。code
“:w”:保存(必需要有文件写权限) “:wq”:保存并退出(必需要有文件写权限) “:wq!”:保存并强制退出(必需要有文件写权限) “:q”:退出(没有修改过文件内容) “:q!”:强制退出(会放弃修改) ZZ:保存而且退出(必需要有文件写权限) “:w filename”:另存为filename文件 “:n1,n2 w filename”:把文件的第n1行到第n2行内容另存为filename文件
“:r filename”:把文件filename的内容导入到当前文件,插入到光标所在行以后
u:撤销前一个操做,即放弃前一个操做的更改 小数点“.”:重复执行前一个操做,即再作一次 Ctrl + r:重作前一个操做,能够这样理解,先撤销已作的更改,而后再重复以前的更改。 J:将下一行数据拉到光标所在行以后,这样至关于剪切下一行后粘贴到该行的行尾,文件行数少1。
“:! command”:在通常模式下,可临时切换到shell界面执行命令,执行完毕后按下回传就回到文件内的通常模式下。可用于临时查看信息等,方便。
“:files”:列出vi打开的全部文件 “:n”:进入下一个被vi打开的文件编辑 “:N”:进入前一个被vi打开的文件编辑
“:sp filename”:水平分割窗口,并打开filename文件 “:vsp filename”:沿垂直方向分割窗口,并打开filename文件 Ctrl + w + j或k:将光标往上或者往下移动到内窗口,进去后就能够进行常规操做了
保存vi偏好设置文档
打开文件“vi ~/.vimrc”,经过set来设置,经常使用的有: set nu set ruler set hlsearch set showmode syntax on ...