vi/vim命令使用说明

1、命令概述

vi/vim命令是文本编辑器。编辑多个文件,中间用空格隔开。

vi编辑器支持编辑模式和命令模式,编辑模式下可以完成文本的编辑功能,命令模式下可以完成对文件的操作命令,要正确使用vi编辑器就必须熟练掌握着两种模式的切换。默认情况下,打开vi编辑器后自动进入命令模式。从编辑模式切换到命令模式使用“esc”键,从命令模式切换到编辑模式使用“A”、“a”、“O”、“o”、“I”、“i”键。
vi编辑器提供了丰富的内置命令,有些内置命令使用键盘组合键即可完成,有些内置命令则需要以冒号“:”开头输入。

2、命令语法

vi【选项】 【文件】 

3、命令选项

vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和末行模式(Last line mode)

+<行号>:将光标定位到指定行号的行首
+:打开文件,光标定位到最后一行的行首
+/word:打开文件,定位只第一次被word匹配到的行的行首
-b:以二进制模式打开文件,用于编辑二进制文件和可执行文件;
-c<指令>:在完成对第一个文件编辑任务后,执行给出的指令;
-d:以diff模式打开文件,当多个文件编辑时,显示文件差异部分;
-l:使用lisp模式,打开“lisp”和“showmatch”;
-m:取消写文件功能,重设“write”选项;
-M:关闭修改功能;
-n:不实用缓存功能;
-o<文件数目>:指定同时打开指定数目的文件;
-R:以只读方式打开文件;
-s:安静模式,不现实指令的任何错误信息。

1)命令模式

翻页命令:
Ctrl+u:向上翻半页;
Ctrl+d:向下翻半夜;
Ctrl+f:向下翻一页;
Ctrl+b:向上翻一页;

逐字符移动光标:
h:光标向左移一个字符
l:光标向右移一个字符(小写L)
k:光标向上移一个字符
j:光标向下移一个字符
nh/l/j/k:光标向左、右、上、下移动n个字符

扫描二维码关注公众号,回复: 7777624 查看本文章

以单词为单位移动光标:
w: 移至下一个单词的词首
e: 跳至当前或下一个单词的词尾
b: 跳至当前或前一个单词的词首
nw/e/b: 移动n个单词

行内跳转:
0(数字0):光标移动到当前行的行首
^: 行首的第一个非空白字符
$:光标移动到当前行的行尾
n空格(n代表数字):光标向当前行右移动n个字符

行间跳转:
nG(n代表数字):光标移动到该文章第n行的第一个非空字符,如果为空行,则在行首
gg:光标移动到该文档的第一行的非空字符,如果为空行,则在行首
G:光标移动到该文章最后一行的第一个非空字符
n+回车:光标从当前行向下移动n行的第一个非空字符,如果为空行,则在行首

删除单个字符:
x或X:删除一个字符,x删除光标后的,而X删除光标前的;
nx(n代表数字):向后删除n个字符
nX(n代表数字):向前删除n个字符

删除命令:
dd:删除光标所在行整行内容;
D:删除从当前光标到光标所在行尾的全部字符;
ndd:删除当前行及其后n-1行;
dnG:删除光标所在行到第n行的所有数据
dG:删除光标所在行到最后一行的所有数据
dnj(n代表数字):删除光标所在行向下n+1行
dw:删除光标向后到下一个单词之间的字符
de:删除本单词光标后的字符(包含光标所在字符)
db:删除本单词光标前的字符(包含光标所在字符)

复制命令:
yy:复制光标所在整行,或者Y
nyy:包括光标所在行向下复制n-1行
y^或者y0:复制光标所在行到行首
y$:复制光标所在行到行尾
yw:复制一个单词
y2w:复制两个单词
ynG:复制光标所在行到第n行的所有数据
yG:复制光标所在行到最后一行的所有数据
y1G:复制至档首
ynj(n代表数字):复制光标所在行向下n+1行

粘贴命令:
p:粘贴至光标后(下)
P:粘贴至光标前(上)

替换命令:
nr字符:光标后的n个字符替换成想要替换的单个字符
R:替换模式,在光标处直接输入需要替换的字符

撤销操作:
u:撤消前一次的编辑操作
nu: 直接撤消最近n次编辑操作
连续u命令可撤消此前的n次编辑操作
Ctrl+r:撤消最近一次撤消操作

重复前一次编辑操作:
.:点 命令模式下重复前一次编辑模式下的操作

可视化模式:
v:按字符选取
V:按行选取
Esc:按两次取消可视化

其他命令:
J:将光标所在行与下一行的数据结合成一行(中间空格隔开)
+:光标移动到下一行的第一个非空字符
-:光标移动到上一行的第一个非空字符
H:光标移动到当前屏幕最上方的那一行的第一个非空字符,如果为空行,则在行首
M:光标移动到当前屏幕最中间那一行的第一个非空字符,如果为空行,则在行首
L:光标移动到当前屏幕最下方的那一行的第一个非空字符,如果为空行,则在行首
ZZ:命令模式下保存当前文件所做的修改后退出vi;

2)输入模式

i,I:i为在当前光标所在处插入输入的文字,I为在光标所在行第一个非空字符插入输入的文字
a,A:a为在当前光标所在处下一个字符插入输入的文字,A为在光标所在行最后一个字符的下一个字符处插入输入的文字
o,O:o为在光标所在行的下一行行首开始插入字符,O为在光标所在行的上一行行首开始插入字符
r,R:r为替换光标所在那一个字符,R为一直替换光标所指的文字,直到退出
Esc:退出,回到命令模式

3)末行模式

/word:在光标之后查找word字符串
?word:在光标之前查找word字符串
:s/word1/word2/g:在光标当前行查找word1,并替换成word2
:n1,n2s/word1/word2/g:在第n1行与第n2行之间查找word1,并替换成word2
:%s/word1/word2/g:整个文章查找word1,并替换成word2
:w:将编辑的数据保存到硬盘文件中
:w [filename]:将编辑后的数据保存到硬盘的另一个文件中
:r [filename]:在编辑数据时,读入另一个文件中的数据,即将filename文件中的内容加到光标所在行下一行
:wq或:x:保存并退出
:q:退出,适用于未修改的文件
:q!:强制退出,适用于修改文件后不保存退出
:set number:显示行号
:set nonumber:取消行号
:n1,n2 w [filename]:将n1到n2行的内容保存到名为filename的文件中
:f:显示当前的文件名、光标所在行的行号以及显示比例;
:行号:光标跳转到指定行的行首;
:$:光标跳转到最后一行的行首;
:e文件名:打开并编辑指定名称的文件;
:n:如果同时打开多个文件,则继续编辑下一个文件;

编辑多个文件:
vim FILE1 FILE2 FILE3
next:切换至下一个文件
prev:切换至前一个文件
last:切换至最后一个文件
first:切换至第一个文件
q退出当前文件
qa 全部退出

显示忽略或区分字符大小写:
:set ic
:set noic
ic = ignorecase

设定自动缩进:
:set ai
:set noai
ai = autoindent

查找到的文本高亮显示或取消:
:set hlsearch
:set nohlsearch

语法高亮:
:syntax on
:syntax off
注:特性当前有效,如果想要永久有效需修改配置文件

配置文件:
/etc/vimrc 针对所有用户
~/.vimrc 针对当前用户

猜你喜欢

转载自www.cnblogs.com/liuzgg/p/11813865.html
今日推荐