VI常用命令及快捷键
Linux下的vi编辑器的简单使用操作方法
Linux下的vi编辑器的简单使⽤操作⽅法vi编辑器的使⽤:vi编辑器有三种基本⼯作模式,分别是命令⾏模式、⽂本输⼊模式、末⾏模式。
1.命令⾏模式该模式是进⼊vi编辑器后的默认模式,任何时候,不管⽤户处于何种模式,按下esc键即可进⼊命令⾏模式。
在命令⾏模式下,可以输⼊vi命令来管理⾃⼰的⽂档。
此时在键盘上输⼊任何字符都被当作编辑命令,⽽不是输⼊字符。
输⼊的字符并不会在屏幕上显⽰,若是合法的vi命令,则会完成相应的动作,否则会响铃报警。
2.⽂本输⼊模式命令⾏模式下输⼊以下⼏个命令则会进⼊⽂本输⼊模式。
i: 插⼊命令,会将⽂本插⼊到光标所在位置之前I: 插⼊命令,会将⽂本插⼊到光标所在⾏的⾏⾸a: 追加⽂本命令,会将⽂本追加到光标当前位置之后A: 追加⽂本命令,会将⽂本追加到光标所在⾏的末尾o: 空⾏插⼊命令,将在光标所在⾏的下⾯插⼊⼀个空⾏,并将光标置于该⾏的⾏⾸O: 空⾏插⼊命令,将在光标所在⾏的上⾯插⼊⼀个空⾏,并将光标置于该⾏的⾏⾸c: 修改命令r: 取代命令s: 替换命令在该模式下,⽤户输⼊的任何字符都被当做⽂件内容保存起来,并显⽰在屏幕上。
3.末⾏模式命令⾏模式下,⽤户按下:键即可进⼊末⾏模式,此时vi会在显⽰窗⼝的最后⼀⾏显⽰⼀个:作为末⾏模式的说明符,等待⽤户输⼊命令。
多数⽂件管理命令都是在此模式下执⾏的。
末⾏命令执⾏完后,vi会⾃动回到命令⾏模式4.vi⽂本的删除命令:vi编辑器可以在编辑模式和命令⾏模式下删除⽂本。
命令⾏模式下,vi常⽤删除命令x 删除光标处的字符。
若在x之前加上⼀个数字n,则删除从光标所在位置开始向右的n个字符。
X 删除光标前⾯的字符。
若在X之前加上⼀个数字n,则删除从光标前⾯那个字符开始向左的n个字符。
dd 删除光标所在的整⾏。
前⾯加上数字n,则删除当前⾏以及其后的n-1⾏。
D 或 d$ 删除从光标所在处开始到⾏尾的内容。
d( 删除到上⼀句开始的所有字符d) 删除到下⼀句开始的所有字符d{ 删除到上⼀段开始的所有字符d} 删除到下⼀段开始的所有字符d0 删除从光标前⼀个字符开始到⾏⾸的内容dw 删除⼀个单词。
vim编辑器常用命令
vim编辑器常⽤命令vi有3个模式:插⼊模式、命令模式、低⾏模式。
插⼊模式:在此模式下可以输⼊字符,按ESC将回到命令模式。
命令模式:可以移动光标、删除字符等。
低⾏模式:可以保存⽂件、退出vi、设置vi、查找等功能(低⾏模式也可以看作是命令模式⾥的)。
⼀、打开⽂件、保存、关闭⽂件(vi命令模式下使⽤)vi filename //打开filename⽂件:w //保存⽂件:w //保存⾄⽂件:q //退出编辑器,如果⽂件已修改请使⽤下⾯的命令:q! //退出编辑器,且不保存:wq //退出编辑器,且保存⽂件⼆、插⼊⽂本或⾏(vi命令模式下使⽤,执⾏下⾯命令后将进⼊插⼊模式,按ESC键可退出插⼊模式)a //在当前光标位置的右边添加⽂本i //在当前光标位置的左边添加⽂本A //在当前⾏的末尾位置添加⽂本I //在当前⾏的开始处添加⽂本(⾮空字符的⾏⾸)O //在当前⾏的上⾯新建⼀⾏o //在当前⾏的下⾯新建⼀⾏R //替换(覆盖)当前光标位置及后⾯的若⼲⽂本J //合并光标所在⾏及下⼀⾏为⼀⾏(依然在命令模式)三、移动光标(vi命令模式下使⽤)1、使⽤上下左右⽅向键2、命令模式下:h 向左、j 向下、k 向上、l 向右。
空格键向右、Backspace 向左、Enter 移动到下⼀⾏⾸、- 移动到上⼀⾏⾸。
四、删除、恢复字符或⾏(vi命令模式下使⽤)x //删除当前字符nx //删除从光标开始的n个字符dd //删除当前⾏ndd //向下删除当前⾏在内的n⾏u //撤销上⼀步操作U //撤销对当前⾏的所有操作五、搜索(vi命令模式下使⽤)/vpser //向光标下搜索vpser字符串vpser //向光标上搜索vpser字符串n //向下搜索前⼀个搜素动作N //向上搜索前⼀个搜索动作六、跳⾄指定⾏(vi命令模式下使⽤)n+ //向下跳n⾏n- //向上跳n⾏nG //跳到⾏号为n的⾏G //跳⾄⽂件的底部七、设置⾏号(vi命令模式下使⽤):set nu //显⽰⾏号:set nonu //取消显⽰⾏号⼋、复制、粘贴(vi命令模式下使⽤)yy //将当前⾏复制到缓存区,也可以⽤ "ayy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
vi操作
Vi各种快捷方式1、可直接输入的命令ctrl+v:进入列模式编辑;shift+g:跳至文档末尾;v:列模式(移动光标,全选);u:撤销;Ctrl+r:恢复刚才撤销的动作;Ctrl+w+w:切换到下一个窗口(多窗口操作);2、以冒号“:”开头的命令:set nu:显示行号:set nonu:取消行号显示:%s/字符串1/字符串2/g:全局替换,字符串2替换字符串1注:#也可以作为分隔符:%!sort -u:删除重复行:set noh:取消高亮显示3、以斜杠“/”开头的命令/输入字符:查找内容。
4、行缩进在命令格式下,按住shift并连续点击两次>,不进入插入模式即可实现行缩进行操作1、删除行刪除沒有內容的空行:g/^$/d刪除包含有空格組成的空行:g/^\s*$/d以空格或tab開頭到結尾的空行:g/^[ |\t]*$/d:%s/r//g 删除DOS方式的回车^M:%s= *$== 删除行尾空白:%s/^(.*)n1/1$/ 删除重复行:%s/^.{-}pdf/new.pdf/ 只是删除第一个pdf:%s/<!--_.{-}-->//又是删除多行注释(咦?为什么要说「又」呢?):g/s*^$/d 删除所有空行:这个好用有没有人用过还有其他的方法吗?:g!/^dd/d 删除不含字符串'dd'的行:v/^dd/d 同上(译释:v == g!,就是不匹配!):g/str1/,/str2/d 删除所有第一个含str1到第一个含str2之间的行:v/./.,/./-1join 压缩空行:g/^$/,/./-j 压缩空行ndw 或ndW 删除光标处开始及其后的n-1 个字符。
d0 删至行首。
d$ 删至行尾。
ndd 删除当前行及其后n-1 行。
x 或X 删除一个字符。
Ctrl+u 删除输入方式下所输入的文本。
^R 恢复u的操作J 把下一行合并到当前行尾V 选择一行^V 按下^V后即可进行矩形的选择了aw 选择单词iw 内部单词(无空格)as 选择句子is 选择句子(无空格)ap 选择段落ip 选择段落(无空格)D 删除到行尾x,y 删除与复制包含高亮区dl 删除当前字符(与x命令功能相同)d0 删除到某一行的开始位置d^ 删除到某一行的第一个字符位置(不包括空格或TAB字符)dw 删除到某个单词的结尾位置d3w 删除到第三个单词的结尾位置db 删除到某个单词的开始位置dW 删除到某个以空格作为分隔符的单词的结尾位置dB 删除到某个以空格作为分隔符的单词的开始位置d7B 删除到前面7个以空格作为分隔符的单词的开始位置d)删除到某个语句的结尾位置d4)删除到第四个语句的结尾位置d(删除到某个语句的开始位置d)删除到某个段落的结尾位置d{ 删除到某个段落的开始位置d7{ 删除到当前段落起始位置之前的第7个段落位置dd 删除当前行d/text 删除从文本中出现“text”中所指定字样的位置,一直向前直到下一个该字样所出现的位置(但不包括该字样)之间的内容dfc 删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括该字符)之间的内容dtc 删除当前行直到下一个字符“c”所出现位置之间的内容D 删除到某一行的结尾d$ 删除到某一行的结尾5dd 删除从当前行所开始的5行内容dL 删除直到屏幕上最后一行的内容dH 删除直到屏幕上第一行的内容dG 删除直到工作缓存区结尾的内容d1G 删除直到工作缓存区开始的内容vi 列操作1、对列插入:1 定位光标位置2 ctrl+v进入visual-block模式(选定光标所在行对应的列)3 j移动光标选择列编辑行(按shift+g移动到文件底部)4 输入大写I5 输入输入要插入的文本6 esc7 保存完成eg:文件内容如下:123455678967755hghgh......45975现在需在第一列插入#,将光标定在第一行第一列处,ctrl+v选定第一列,输入命令I,之后按shift+g,光标跳至最后一行的第一列,此时选定了整个文件的第一列,输入要插入的字符#,此时,字符#只会显示在第一行第一列的位置上,按ESC退出,则其余行的第一列的#将显示出来。
vi中的快捷键
n 在同一方向重复查找
N 在相反方向重复查找
ftext 在当前行向前查找text
Ftext 在当前行向后查找text
ttext 在当前行向前查找text,并将光标定位在text的第一个字符
Ttext 在当前行向后查找text,并将光标定位在text的第一个字符
:.= 打印当前行的行号
:= 打印文件中的行数
^g 显示文件名、当前的行号、文件的总行数和文件位置的百分比
:l 使用字母"l"来显示许多的特殊字符,如制表符和换行符
在文本中定位段落和放置标记
选项 作用
{ 在第一列插入{来定义一个段落
[[ 回到段落的开头处
]] 向前移到下一个段落的开头处
保存文本和退出vi
命令 保存和/或退出操作
:w 保存文件但不退出vi
:w file 将修改保存在file中但不退出vi
:wq或ZZ或:x 保存文件并退出vi
:q! 不保存文件,退出vi
:e! 放弃所有修改,从上次保存文件开始再编辑
vi中的选项
选项 作用
:set all 打印所有选项
:set nooption 关闭option选项
vi中的宏与缩写
(避免使用控制键和符号,不要使用字符K、V、g、q、v、*、=和功能键)
选项 作用
:map key command_seq 定义一个键来运行command_seq,如:map e ea,无论什么时候都可以e移到一个字的末尾来追加文本
:map 在状态行显示所有已定义的宏
:umap key 删除该键的宏
vi的文本编辑命令:
Vi常用命令
进入vi的命令 (1)移动光标类命令 (1)屏幕翻滚类命令 (2)编辑插入文本类命令 (3)删除命令 (5)搜索及替换命令 (6)选项设置 (8)组合命令 (10)最后行方式命令 (14)寄存器操作 (15)进入vi的命令vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filenamevi filename....filename :打开多个文件,依次进行编辑移动光标类命令h :光标左移一个字符l :光标右移一个字符space:光标右移一个字符Backspace:光标左移一个字符k或Ctrl+p:光标上移一行j或Ctrl+n :光标下移一行Enter :光标下移一行w或W :光标右移一个字至字首b或B :光标左移一个字至字首e或E :光标右移一个字至字尾) :光标移至句尾( :光标移至句首}:光标移至段落开头{:光标移至段落结尾nG:光标移至第n行首n+:光标下移n行n-:光标上移n行n$:光标移至第n行尾H :光标移至屏幕顶行M :光标移至屏幕中间行L :光标移至屏幕最后行0:(注意是数字零)光标移至当前行首$:光标移至当前行尾^ 光标移到行首f 光标移到当前光标位置后面的第一个指定的字符下F 光标移到当前光标位置前面的第一个指定的字符下t 光标移到当前光标位置后面的第一个指定的字符前T 光标移到当前光标位置前面的第一个指定的字符前% 光标移动到与当前括号匹配的括号处:n 光标移动到指定行按数字:0:移到文章的开头。
按G:移动到文章的最后。
按w:光标跳到下个字的开头按e:光标跳到下个字的字尾按b:光标回到上个字的开头按:#l:光标移到该行的第#个位置,如:5l,56l。
vi常用使用技巧
vi常用使用技巧金融系统事业部—徐卓兴vi可以说是在Unix操作系统中最常用的文本编辑工具了,但是因为它的命令集众多,很多人都不习惯使用它,特别是习惯了使用windows操作系统下编辑工具的人,在初次接触vi时会觉得非常的不习惯而拒绝使用它,其实您只需要掌握基本命令,然后加以灵活运用,就会发现它的优势,并会逐渐喜欢使用这种方法。
本文介绍了主要介绍使用vi的一些常用技巧。
一、基本命令介绍1.光标命令k、j、h、l——上、下、左、右光标移动命令。
注意:尽量不要使用四个箭头键来移动光标,一方面是四个箭头距离字母区比较远,使用不便,另一方面是在某些终端中不支持箭头的使用。
而k、j、h、l这4个键正是右手在键盘上放置的基本位置,移动非常快捷。
Ctrl+G ——光标所在位置的行数和列数报告。
Ctrl+F ——向后翻一页。
Ctrl+B ——向前翻一页。
Ctrl+L ——刷新屏幕(乱屏时使用):n ——光标定位到第n行。
G ——光标移动到文件最后一行。
0 ——光标移动到行首。
$ ——光标移动到行尾。
2.编辑命令o ——在当前行下面新开一行。
O ——在当前行上面新开一行。
i、a ——在光标的前、后处插入字符。
cw ——改变光标所在处的单词。
dw ——删除光标所在处的单词的命令。
X ——删除一个字符。
D ——删除光标所在处到行尾的所有字符。
dd、ndd——删除整行、删除当前行开始的n行。
n<<、n>> ——从当前行开始的n行全部向左、右调整缩进格式,该命令用于调整源码的缩进格式。
3.查找命令/string、?string ——从光标所在处向后或向前查找相应的字符串的命令。
n ——移动光标到下个匹配的位置。
4.拷贝复制命令yy、p ——拷贝一行到剪贴板或取出剪贴板中内容的命令。
二、常用技巧1.设置tab键和左移(<<)、右移(>>)命令的移动位置。
在登录用户的根目录中建立一新文件.exrc,在文件中添加如下两行set tabstop=4set shiftwidth=4第一行设置tab键的移动位置为4个空格长度,第二行设置左移或右移的单位为4个空格长度。
vi编辑器常用的命令及快捷键
ttext 在当前行向前查找text,并将光标定位在text的第一个字符
Ttext 在当前行向后查找text,并将光标定位在text的第一个字符
vi的状态
选项 作用
:.= 打印当前行的行号
:= 打印文件中的行数
^g 显示文件名、当前的行号、文件的总行数和文件位置的百分比
E 移到下一个字的结尾,忽略标点符号
( 移到句子的开头
) 移到句子的结尾
{ 移到段落的开头
} 移到下一个段落的开头
x 删除光标处的字符,可以在x前加上需要删除的字符数目
nx 从当前光标处往后删除n个字符
X 删除光标前的字符,可以在X前加上需要删除的字符数目
nX 从当前光标处往前删除n个字符
0或| 移到当前行的第一列
n| 移到当前行的第n列
^ 移到当前行的第一个非空字符
$ 移到当前行的最后一个字符
+或return 移到下一行的第一个字符
B 移到前一个字的开头,忽略标点符号
L 移到屏幕的最后一行
M 移到屏幕的中间一行
H 移到屏幕的第一行
e 移到下一个字的结尾
:set ic 查找时忽略大小写
:set noic 查找时对大小写敏感
:s/oldtext/newtext 用newtext替换oldtext
:m,ns/oldtext/newtext 在m行通过n,用newtext替换oldtext
在vi中复制文本
命令 复制操作
yy 将当前行的内容放入临时缓冲区
nyy 将n行的内容放入临时缓冲区
p 将临时缓冲区中的文本放入光标后
Vi编辑器的使用(linux)
《操作系统(linux)》实验指导书实验一Vi编辑器的使用一、实验目的●理解Vi的三种运行模式及切换方法;●学会使用Vi的各种操作命令进行文本文件的编辑;●用Vi编写Linux下C程序,会用gcc编译。
二、实验工具一台装有Linux的机器(这里默认是Red Hat Linux 9),系统里面有gcc编译器。
三、预备知识介绍一些常见的实验命令,相关说明可以参考本实验参考资料部分。
1、进入插入模式命令i从光标所在位置前开始插入文本;命令a 在光标当前所在位置之后追加新文本;命令o将在光标所在行的下面新开一行,并将光标置于该行行首,等待输入文本;2、编辑模式下操作命令h、j、k、l 进行光标左移、下移、上移和右移一个字符的定位;命令x 删除光标处字符;命令yy 将当前行的内容复制到缓冲区中;命令p 将缓冲区中的内容写到光标所在的位置;命令zz 存盘退出;3、命令模式下操作命令:n直接跳到n所指向的行(n指行号);命令:q退出vi;四、基本实验首先用合法用户名登陆系统。
1.不保存直接退出(1)在系统提示符下,输入vi,按回车键。
(2)我们会看到vi的界面。
(3)输入:q!不保存直接退出。
2.新建文件hello.c并编辑一段文字进行保存(4)在系统提示符下输入vi hello.c,按回车键。
(5)看到vi的界面,输入i,左下角会出现“插入”。
(6)输入一段文字。
(7)按Esc键,进入命令模式。
这时“插入”就不见了。
(8)输入:wq,按回车键,保存文件。
3.对文件hello.c进行增、删、改操作(9)在系统提示符下输入vi hello.c,按回车键。
(10)看到vi的界面。
输入i,进入插入模式。
(11)输入增加的文字:“vi is very easy to user~!”。
(12)用方向键将光标移到图文字行的任意处。
(13)按Esc键,进入命令模式。
(14)输入命令dd,删除光标所在一行(若连续输入d,d是将光标所在的行及以下所有行删除)。
vi使用方法
vi使用方法Vi使用方法。
Vi是一款常用的文本编辑器,它具有强大的功能和灵活的操作方式,可以帮助用户高效地进行文本编辑。
下面将介绍Vi的基本使用方法,希望对初学者有所帮助。
1. 启动Vi。
在命令行中输入vi命令即可启动Vi编辑器,如,vi filename。
如果文件不存在,则会新建一个文件;如果文件已存在,则会打开该文件。
2. Vi的三种模式。
Vi有三种模式,命令模式、插入模式和底线命令模式。
命令模式,Vi启动后默认进入的模式,可以进行文本的复制、粘贴、删除等操作。
插入模式,在命令模式下按下i、a、o等键可以进入插入模式,可以进行文本的输入和编辑。
底线命令模式,在命令模式下按下冒号键“:”可以进入底线命令模式,可以保存、退出、查找等操作。
3. 基本操作。
在命令模式下,可以使用以下基本操作:光标移动,h(左)、j(下)、k(上)、l(右)。
删除字符,x(删除光标所在位置的字符)、dd(删除整行)。
复制粘贴,yy(复制整行)、p(粘贴)。
撤销操作,u(撤销上一步操作)。
4. 插入文本。
在命令模式下按下i可以进入插入模式,在插入模式下可以进行文本的输入和编辑。
按下Esc键可以退出插入模式,回到命令模式。
5. 保存和退出。
在命令模式下按下冒号键“:”进入底线命令模式,可以进行保存和退出操作:保存,输入w命令,如,w filename。
保存并退出,输入wq命令,如,wq filename。
不保存并退出,输入q!命令,如,q!。
6. 查找和替换。
在底线命令模式下可以进行查找和替换操作:查找,输入/加上要查找的内容,如,/keyword。
替换,输入:s/old/new/g可以替换文本中的所有old为new。
7. 多窗口操作。
Vi支持分割窗口进行多文件编辑,可以使用,sp(水平分割)、vsp(垂直分割)命令进行窗口分割,使用Ctrl+w进行窗口切换。
8. 高级操作。
Vi还支持宏录制、行号显示、标签跳转等高级操作,可以根据实际需求进行学习和使用。
Linux 中 V(Vim)常用命令使用说明
Linux 中V(Vim)常用命令使用说明在linux发行版中vi 命令已经软链接到了vim一、vi的三种工作模式:命令模式、末行模式、编辑模式1. 末行模式命令w:(write)保存q:(quit)退出,如果没有保存不允许退出q!:(quit)强行退出,不保存退出wq:(write&quit)保存并退出x:保存并退出:e:(edit)会打开内置浏览器浏览当前目录下的文件,后面加文件名就会打开该文件:n文件名:(new)新建文件:w文件名:(write)另存为,但是仍然编辑当前文件,并不会切换文件二、打开或新建文件说明:打开一个文件,文件不存在则新建一个文件命令:vi 文件名1. 打开文件并且定位行说明:打开一个文件并且定位到指定行数,不指定行数则定位到文件末尾命令:vi 文件名+行数三、常用命令(命令模式下使用)1. 重复次数在命令模式下,先输入一个数字再跟上一个命令,可以让该命令重复执行指定次数。
2. 移动和选择2.1 移动行间移动命令:行内移动命令:行数移动命令:屏幕移动命令:段落移动命令:vi中用空行来区分段落,在程序开发过程中,通常一段功能相关的代码会放到一起(一个段落)。
括号切换命令:标记命令:2.2 选择(可视模式)可视模式下,esc可退出可视模式,还可和移动命令连用,例如ggVG能够选中所有内容。
3. 编辑操作3.1撤销和恢复撤销3.2 删除文本如果使用可视模式已经选中了一段字符,那么使用d或者x都可以删除选中字符。
删除命令可以和移动命令连用,例如3.3 复制粘贴复制粘贴是在一个文本缓冲区,没有使用系统的剪切板,所有用其他软件ctrl + c/x 复制剪切到系统的剪切板,再到vi中p粘贴是不能粘贴系统剪切板的内容的。
如果想将系统剪切板的内容粘贴到vi中,需要进入编辑模式使用ctrl + v才能将内容粘贴。
vi中的删除操作本质上就是剪切,只是没有使用p粘贴。
4. 撤销和重复4.1 缩排和重复5. 查找和替换5.1替换R命令可进入替换模式,替换完后esc退出替换模式进入命令模式替换命令的作用就是在不用进入编辑模式,对文本进行轻量级修改。
Linux中vi编辑器的基本使用方法
Vi编辑器的基本使用方法!1、vi的基本概念基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:1) 命令行模式command mode)区段及进入Insert mode下,或者到last line mode。
2) 插入模式(Insert mode)只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
3) 底行模式(last line mode)将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式(command mode)。
2、vi的基本操作a) 进入vi在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面:$ vi myfile不过有一点要特别注意,就是您进入vi之后,是处于「命令行模式(command mode)」,您要切换到「插入模式(Insertmode)」才能够输入文字。
初次使用vi的人都会想先用上下左右键移动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入vi后,先不要乱动,转换到「插入模式(Insert mode)」再说吧!b) 切换至插入模式(Insert mode)编辑文件在「命令行模式(command mode)」下按一下字母「i」就可以进入「插入模式(Insert mode),这时候你就可以开始输入文字了。
c) Insert 的切换您目前处于「插入模式(Insert mode)」,您就只能一直输入文字,如果您发现输错了字!想用光标键往回移动,将该字删除,就要先按一下「ESC」键转到「命令行模式(command mode)」再删除文字。
d) 退出vi及保存文件在「命令行模式(command mode)」下,按一下「:」冒号键进入「Last line mode」,例如:: w filename (输入「w filename」将文章以指定的文件名filename保存): wq (输入「wq」,存盘并退出vi): q! (输入q!,不存盘强制退出vi)3、命令行模式(command mode)功能键1). 插入模式按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。
vi的快捷键一览表
:! command
暂时离开vi到指令列模式下执行command的显示结果!例如『:! ls /home』即可在vi当中察看/home底下以ls输出的文件信息!
:set nu
显示行号,设定之后,会在每一行的前缀显示该行的行号
:set nonu
与set nu相反,为取消行号!
L
光标移动到这个屏幕的最下方那一行
G
移动到这个文件的最后一行(常用)
nG
n为数字。移动到这个文件的第n行。例如20G则会移动到这个文件的第20行(可配合:set nu)
gg
移动到这个文件的第一行,相当于1G啊!(常用)
n<Enter>
n为数字。光标向下移动n行(常用)
一般模式:查找与替换
/word
向光标之下寻找一个字符串名称为word的字符串。例如要在文件内查找vbird这个字符串,就输入/vbird即可!(常用)
:1,$s/word1/word2/g
从第一行到最后一行寻找word1字符串,并将该字符串替换为word2!(常用)
:1,$s/word1/word2/gc
从第一行到最后一行寻找word1字符串,并将该字符串替换为word2!且在替换前显示提示字符给使用者确认(conform)是否需要替换!(常用)
?word
向光标之上寻找一个字符串名称为word的字符串。
n
这个n是英文按键。代表『重复前一个查找的动作』的意思。举例来说,如果刚刚我们执行/vbird去向下查找vbird这个字符串,则按下n后,会向下继续查找下一个名称为vbird的字符串。如果是执行?vbird的话,那么按下n则会向上继续查找名称为vbird的字符串!
Ubuntu vi 命令大全
Ubuntu vi 命令大全.txt vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filenamevi filename....filename :打开多个文件,依次进行编辑移动光标类命令h :光标左移一个字符l :光标右移一个字符space:光标右移一个字符Backspace:光标左移一个字符k或Ctrl+p:光标上移一行j或Ctrl+n :光标下移一行Enter :光标下移一行w或W :光标右移一个字至字首b或B :光标左移一个字至字首e或E :光标右移一个字至字尾) :光标移至句尾( :光标移至句首}:光标移至段落开头{:光标移至段落结尾nG:光标移至第n行首n+:光标下移n行n-:光标上移n行n$:光标移至第n行尾H :光标移至屏幕顶行M :光标移至屏幕中间行L :光标移至屏幕最后行0:(注意是数字零)光标移至当前行首$:光标移至当前行尾屏幕翻滚类命令Ctrl+u:向文件首翻半屏Ctrl+d:向文件尾翻半屏Ctrl+f:向文件尾翻一屏Ctrl+b;向文件首翻一屏nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
插入文本类命令i :在光标前I :在当前行首a:光标后A:在当前行尾o:在当前行之下新开一行O:在当前行之上新开一行r:替换当前字符R:替换当前字符及其后的字符,直至按ESC键s:从当前光标位置处开始,以输入的文本替代指定数目的字符S:删除指定数目的行,并以所输入文本代替之ncw或nCW:修改指定数目的字nCC:修改指定数目的行删除命令ndw或ndW:删除光标处开始及其后的n-1个字do:删至行首d$:删至行尾ndd:删除当前行及其后n-1行x或X:删除一个字符,x删除光标后的,而X删除光标前的Ctrl+u:删除输入方式下所输入的文本搜索及替换命令/pattern:从光标开始处向文件尾搜索pattern?pattern:从光标开始处向文件首搜索patternn:在同一方向重复上一次搜索命令N:在反方向上重复上一次搜索命令:s/p1/p2/g:将当前行中所有p1均用p2替代:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代:g/p1/s//p2/g:将文件中所有p1均用p2替换选项设置all:列出所有选项设置情况term:设置终端类型ignorance:在搜索中忽略大小写list:显示制表位(Ctrl+I)和行尾标志($)number:显示行号report:显示由面向行的命令修改过的数目terse:显示简短的警告信息warn:在转到别的文件时若没保存当前文件则显示NO write信息nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始mesg:允许vi显示其他用户用write写到自己终端上的信息最后行方式命令:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下:n1,n2 d :将n1行到n2行之间的内容删除:w :保存当前文件:e filename:打开文件filename进行编辑:x:保存当前文件并退出:q:退出vi:q!:不保存文件并退出vi:!command:执行shell命令command:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入:r!command:将命令command的输出结果放到当前行寄存器操作"?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字"?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字"?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字"?p:取出寄存器?中的内容并将其放到光标位置处。
esxi vi命令用法
esxi vi命令用法在VMware ESXi环境中,vi命令是用来编辑文件的命令。
它类似于Unix和Linux系统中的vi编辑器。
在ESXi中,vi命令通常用于编辑配置文件和其他系统文件。
以下是关于vi命令的一些常见用法:1. 打开文件:要打开一个文件进行编辑,可以使用以下命令:vi filename.例如,要编辑名为"config.conf"的文件,可以输入:vi config.conf.2. 保存和退出:在vi编辑器中,要保存对文件的更改并退出编辑模式,可以按下"Esc"键,然后输入以下命令::wq.这将保存文件并退出vi编辑器。
3. 插入文本,要在文件中插入文本,首先按下"i"键进入插入模式,然后开始输入文本。
完成后,按下"Esc"键返回命令模式。
4. 删除文本,要删除文本,可以按下"Esc"键返回命令模式,然后使用箭头键将光标移动到要删除的文本处,按下"dd"命令即可删除当前行,或者使用"dw"命令删除一个单词。
5. 搜索和替换:在vi编辑器中,可以使用"/"命令进行文本搜索,例如:/keyword.这将在文件中查找关键字"keyword"。
要进行替换操作,可以使用":s"命令,例如::s/old/new/g.这将在整个文件中将"old"替换为"new"。
6. 撤销操作,要撤销最近的操作,可以按下"u"键。
这些是vi命令的一些基本用法,它们可以帮助你在ESXi环境中编辑文件。
请注意,在使用vi编辑器时要小心,确保不要意外更改重要的系统文件,以免造成不必要的问题。
vi常用快捷键
---------------------------------------------------------
移动光标
1) h或 向左方向键(←)→ 光标向左移动一个字元
2) j或 向下方向鍵(↓)→ 光标向下移动一个字元
3) k或 向上方向鍵(↑)→ 光标向上移动一个字元
5) nyy→ n为数字。复制光标所在的向下 n列
6) p, P→ p为将已复制的内容粘贴在光标下一行上,P则为粘贴在光标的上一行
7) u→ 还原前一个动作
8) [Ctrl]+r→ 重做上一个动作
9) .→ 小数点,意思是重复前一个动作
删除、复制与粘贴
1) x, X→ 在一行字当中,x为向后刪除一个字元 (相当于 [del]按键), X为向前刪除一个字元(相当于 [backspace]按键)
2) dd→ 刪除光标所在的那一整行
3) ndd→ n为数字。刪除光标所在的向下 n列
4) yy→ 复制光标所在的那一行
3) o, O→ o为『在目前光标所在的下一行处插入新的一行』, O为『在目前光标所在处的上一行插入新的一行』
4) r, R→ r为『取代光标所在的那一个字元』, R为『一直取代光标所在的文字,直到按下 ESC为止』
5) Esc→ 退出编辑模式,回到一般模式中
★编辑模式
1) i, I→ 插入:在目前的光标所在处插入输入的文字,已存在的文字会向后退; 其中, i为『从目前光标所在处插入』, I为『在目前所在行的第一個非空白字元处开始插入』
2) a, A→ a为『从目前光标所在的下一个字元处开始插入』, A为『从光标所在行的最后一个字元处开始插入』
vi快捷键
1、命令行模式(command mode)功能键a). 插入模式i:光标当前位置开始输入文字I:在当前行首位置开始输入文件a:从目前光标所在位置的下一个位置开始输入文字A:在当前行尾位置开始输入文件;o插入新的一行,从行首开始输入文字。
O :在当前行之上新开一行;s :从当前光标位置处开始,以输入的文本替代指定数目的字符S :删除指定数目的行,并以所输入文本代替之b).移动光标vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母h j k l,分别控制光标左、下、上、右移一格。
space光标右移一个字符Backspace:光标左移一个字符Enter :光标下移一行ctrl+b:屏幕往“后”移动一页ctrl+f:屏幕往“前”移动一页ctrl+u:屏幕往“后”移动半页ctrl+d:屏幕往“前”移动半页数字0:光标移至当前行$:光标移至当前行尾n$:光标移至第n行尾gg:数字加gg表示定位到该行数字行ctrl+g列出光标所在行的行号^:移动到光标所在行的“行首非空字符处”w:光标到下个字跳的开头e:光标跳到下个字的字尾b:光标回到上个字的开头) :光标移至段落开头( :光标移至段落结尾}:光标移至段落开头{:光标移至段落结尾n+:光标下移n行(等同于n<Enter>)n-:光标上移n行H :光标移至屏幕顶行M :光标移至屏幕中间行L :光标移至屏幕最后行c). 删除文字x:每按一次,删除光标所在位置的一个字符。
X:大写的X,每按一次,删除光标所在位置的“前面”一个字符dd:删除光标所在行d$:删至行尾d). 复制yy:复制光标所在行到缓冲区。
p:将缓冲区内的字符贴到光标所在位置e). 替换r:替换光标所在处的字符R:替换光标所到之处的字符,直到按下ESC键为止f). 恢复上一次操作u:如果您误执行一个命令,可以马上按下u,回到上一个操作。
按多次“u”可以执行多次回复2、Last line mode下命令简介a) 列出行号:set nu:每一行前面列出行号:set nonu:为取消行号b) 跳到文件中的某一行#:#号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了c) 查找字符/关键字:如果第一次找的关键字不是您想要的,可以一直按n会往后寻找到您要的关键字为止?关键字:如果第一次找的关键字不是您想要的,可以一直按n会往前寻找到您要的关键字为止.。
VI常用命令和快捷键
语法]:vi [-wn] [-R] 文件…[说明]: vi 是一个基于行编辑器ex 上的全屏幕编辑器,可以在vi 中使用ex,ed的全部命令,vi选项中-wn 指将编辑窗口大小置为n行,-R 为将编辑的文件置为只读模式,vi 工作模式分为命令模式和输入模式,一般情况下在命令模式下,可敲入vi命令,进入输入模式下时可以编辑要编辑的文本,命令a A i I o O c C s S R 可进入输入模式,在输入模式下按ESC 键可推出输入模式,回到命令模式,在命令模式中敲入:命令,则可进入ex方式,在屏幕底部出现提示符:,此时可使用任意ex命令,屏幕底行也用来作/ ? ! 命令的提示行,大多数命令可以在其前面加数字,表示命令执行的重复次数,下面简单介绍一下vi 的命令集:^ 表示(CTRL)键^B 退回前一页,前面加数字表示重复次数,每次换页时保留上一页的两行^D 在命令模式下,表示下滚屏幕的一半,在输入模式下,表示回退至左边的自动缩进处^E 显示屏幕底线之下的一行^F 前进一页,前面加数字表示重复次数,每次换页时保留上一页的两行^G 显示当前文件名,当前行号和文件总行数,并用百分号当前行在整个文件中的位置^H(退格) 在命令模式下,光标左移一格;在输入模式下,删去前面的字符^I(TAB) 在输入模式下,产生一串空格^J(LF) 光标下移一行^L 刷新屏幕,即将屏幕重新显示^M(回车) 在命令模式下,光标移动至下行开头;在输入模式下,开辟一新行^N 光标下移一行^P 光标上移一行^Q 在输入模式下,将其后的非打印字符作为正文插入^R 刷新屏幕^U 屏幕上滚一半,前面加数字时表示上滚的行数,此数字对以后的^D ^U 命令有效^V 在输入模式下,将其后的非打印字符作为正文插入^W 在输入模式下,使光标回退一个字^Y 显示屏幕底线之上的一行^Z 暂停编辑,退回上层Shell^[(ESC) 退出输入模式,回到命令模式! 暂时退出编辑,执行Shell命令(双引号) 用于标志有名缓冲区,编号缓冲区1-9用于保存被删去的正文,字母名缓冲区a-z供用户存放自定义的正文$ 将光标移动到当前行尾,前加数字则表示前移行数,如2$表示移动到下一行行尾% 将光标移动到配对的小括号()或大括号{}上去( 退回句子开头) 前移到句子开头- 退到上一行第一个非空格字符. 重复上一次改变缓冲区内容的命令/ 模式向前搜索模式,将光标移动到模式出现处,模式是一个正规表达式,(参看grep) :在屏幕底部提示:,其后可使用ex命令? 功能同/ ,但方向是向前查找[[ 光标回退至前一节分界处\ 转意符]] 光标前移至节分界处^(不是CTRL) 光标移至当前行第一个非空字符上‘ 连续两个'’表示将光标移至其移动前的位置,’后跟字母表示光标字母标记的行首(参看m 命令)A 在行尾插入正文,进入输入模式B 光标回退一个字C 替换光标后的内容D 删除光标后的内容E 光标前移到字尾F 字符在当前行向左查找指定字符G 光标移动到其前面数字指定的行,若未指定则移动到最后一行H 光标移动到屏幕顶行,若前面有数字,则移动到屏幕上该数字指定的行I 在行开头插入正文J 连接两行,若前面有数字则连接数字指定的行L 光标移动到屏幕底行,若前面有数字,则移动到屏幕底线往上数该数字指定的行M 光标移动到屏幕中线N 使用模式查找/或?时,重复找下一个匹配的模式,但方向与上次相反,其功能同n ,但方向相反O 在当前行上开辟一新行P 将上次被删除的正文插入光标前面,可在其前面加缓冲区编号,编号1-9用于保存被删去的正文,字母名缓冲区a-z供用户存放自定义的正文Q 从vi 推出进入ex命令状态R 替换字符串S 替换整行T 字符向左查找字符U 将当前行恢复至第一次修改前的状态W 光标移至下一个字首X 删除光标前的字符Y 将当前行存入无名缓冲区,前面加数字表示存入的行数,也可用有名缓冲区来保存,以后可用命令p或P将其取出ZZ 存盘退出via 光标后插入正文b 光标回退至上一个字首cw 替换当前字c) 替换当前句子dw 删除一个字dd 删除一行e 光标移到下一个字末f 字符在当前行向前查找字符h 光标左移一格i 在光标前插入正文j 光标下移一行k 光标上移一行l 光标右移一格m 字母用字母标记当前行,以后可用‘字母使光标移动到当前行,(参看’命令) n 重复上次/ 或? 命令o 在当前行下开辟一新行p 将用户缓冲区内容放到光标位置(参看P命令)r 替换当前字符s 用一串字符替换当前字符t 字符光标移动至字符前u 取消上次操作w 光标移至下一字首x 删除当前字符yw 将当前字存入无名缓冲区,前面可加x,表示存入名字为x的有名缓冲区(x为a-z),也可加数字表示存入的字数,以后可用P或p 命令取出yy 将当前行存入无名缓冲区,用法参看yw{ 光标移动至前一段开头| 光标移至行首,若前面加数字,则移到数字指定行的行首} 光标移至下一段开头在:提示符下,常用命令如下::w 当前文件存盘:w! 强制存盘:w 文件将内容写入指定文件:w! 文件强制写入指定文件:x,y w 文件将x至y 行写入指定文件中:r 文件将文件读到光标位置:r ! 命令将系统命令的输出读到光标位置:q 退出编辑:q! 强制退出:x 与命令ZZ相同:e 文件名编辑另一文件:e ! 重新编辑文件,放弃任何改变:sh 执行sh,结束后回到编辑:! 命令执行命令后回到编辑:n 编辑下一文件:n 文件表重新定义待编辑文件表:set 设置vi 的选项,例如set nu 表示每行前显示行号,在选项前加no则表示清除该选项,例如set nonu 表示每行前不显示行号,下面是一些常用的选项:ai 自动缩进aw 编辑下一文件前自动存盘ic 查找字符串时不区分大小写nu 每行前显示行号sm 输入)及}时显示与之配对的( 或{slow 插入时延迟屏幕刷新ws 使查找能绕过文件尾从头进行wa 写文件之前不作对文件的检查:s/old/new用new替换行中首次出现的old:s/old/new/g 用new替换行中所有出现的old:#,# s/old/new/g用new替换从第#行到第#行中出现的old:% s/old/new/g用new替换整篇中出现的old如果替换的范围较大时,在所有的命令尾加一个c命令,强制每个替换需要用户进行确认,例如:s/old/new/c 或s/old/new/gcu 取消操作i插入命令a附加命令o打开命令c修改命令r取代命令s替换命令Esc退出命令G文件尾行1G文件首行#G 文件的#行:set nu :set nonu 显示行号不显示行号Vi 是一个历史悠久且功能强大的UNIX 文书编辑器。
vi常用命令集锦
vi常⽤命令集锦vi编辑器有3种模式:命令模式、输⼊模式、末⾏模式。
掌握这三种模式⼗分重要: 命令模式:vi启动后默认进⼊的是命令模式,从这个模式使⽤命令可以切换到另外两种模式,同时⽆论在任何模式下只要按⼀下[Esc]键都可以返回命令模式。
在命令模式中输⼊字幕“i”就可以进⼊vi的输⼊模式编辑⽂件。
输⼊模式:在这个模式中我们可以编辑、修改、输⼊等编辑⼯作,在编辑器最后⼀⾏显⽰⼀个“--INSERT--”标志着vi进⼊了输⼊模式。
当我们完成修改输⼊等操作的时候我们需要保存⽂件,这时我们需要先返回命令模式,在进⼊末⾏模式保存。
末⾏模式:在命令模式输⼊“:”即可进⼊该模式,在末⾏模式中有好多好⽤的命令。
vim整理alias vi='vim'1)⽂件的打开与关闭vi filename : 打开或新建⽂件,并将光标置于第⼀⾏⾏⾸vi +n filename : 打开⽂件,并将光标置于第n⾏⾏⾸vi + filename : 打开⽂件,并将光标置于最后⼀⾏⾏⾸vi +/pattern filename: 打开⽂件,并将光标置于第⼀个与pattern匹配的串处vi -r filename : 在上次正⽤vi编辑时发⽣系统崩溃,恢复filenamevi filename...filename :打开多个⽂件,依次进⾏编辑:e filename : 打开filename编辑,编辑完后可⽤:hide退回之前编辑的⽂件:sav filename : 将当前⽂件另存为filename:w : 保存⽂件但不退出vi:w file : 将⽂件另存为file但不退出vi:wq或ZZ或:x : 保存⽂件并退出vi:q! : 不保存⽂件,退出vi:e : 放弃所有修改,从上次保存⽂件开始再编辑(重新载⼊⽂件,包含被其它编辑器修改过的):e! : 放弃所有修改,从上次保存⽂件开始再编辑:hide : 隐藏当前编辑的⽂件,回到上⼀次编辑的⽂件(在打开多⽂件时有效):b 2 : 在当前窗⼝切换到第⼆个打开的⽂件^w^w : 多窗⼝切换2)光标控制与屏幕调整h或^h : 将光标向左移⼀个字符j或^j或^n : 将光标向下移⼀⾏k或^p : 将光标向上移⼀⾏l或空格 : 将光标向右移⼀个字符0或| : 将光标移到当前⾏的第⼀列n| : 将光标移到当前⾏的第n列^ : 将光标移到当前⾏的第⼀个⾮空字符$ : 将光标移到当前⾏的最后⼀个字符n$ : 将光标移到当前⾏下第n-1⾏的最后⼀个字符+或return : 将光标移到下⼀⾏的第⼀个字符- : 将光标移到前⼀⾏的第⼀个⾮空字符gg : 将光标移动到⽂件第⼀⾏G : 将光标移到⽂件的最后⼀⾏nG或ngg或:n : 将光标移到⽂件的第n⾏w : 将光标移到下⼀个字的开头W : 将光标移到下⼀个字的开头,忽略标点符号b : 将光标移到前⼀个字的开头B : 将光标移到前⼀个字的开头,忽略标点符号e : 将光标移到下⼀个字的结尾E : 将光标移到下⼀个字的结尾,忽略标点符号L : 将光标移到屏幕的最后⼀⾏M : 将光标移到屏幕的中间⼀⾏H : 将光标移到屏幕的第⼀⾏H : 将光标移动到屏幕的顶⾏nH : 将光标移动到屏幕顶⾏下的第n⾏M : 将光标移动到屏幕的中间L : 将光标移动到屏幕的底⾏nL : 将光标移动到屏幕底⾏上的第n⾏( : 将光标移动到句⼦的开头) : 将光标移动到句⼦的结尾{ : 将光标移动到段落的开头} : 将光标移动到段落的结尾[[ : 将光标移动到函数(段落)开始处]] : 将光标移动到函数(段落)结尾处[{ : 将光标移动到块开始处}] : 将光标移动到块结束处m(a-z) : ⽤⼀个字母来标记当前位置,如⽤mz表⽰标记z'(a-z) : 将光标移动到指定的标记,如⽤'z表⽰移动到标记z处'' : 两个单引号,将光标移动到最近标记的位置`` : 两个反引号(Tab键上⾯那个),将光标移动到光标前⼀次停留的位置^e : 将屏幕上滚⼀⾏^y : 将屏幕下滚⼀⾏^u : 将屏幕上滚半页^d : 将屏幕下滚半页^b : 将屏幕上滚⼀页^f : 将屏幕下滚⼀页^l : 重绘屏幕z-return : 将当前⾏置为屏幕的顶⾏nz-return : 将当前⾏下的第n⾏置为屏幕的顶⾏z. : 将当前⾏置为屏幕的中央nz. : 将当前⾏上的第n⾏置为屏幕的中央z- : 将当前⾏置为屏幕的底⾏nz- : 将当前⾏上的第n⾏置为屏幕的底⾏3)插⼊⽂本a : 在光标后插⼊⽂本A : 在当前⾏尾插⼊⽂本i : 在光标前插⼊⽂本I : 在当前⾏前插⼊⽂本o : 在当前⾏的下边插⼊新⾏O : 在当前⾏的上边插⼊新⾏escape(Esc) : 回到命令模式^v : 切换到visual block模式,此时通过⽅向键选中block, 再按I,然后输⼊需要插⼊的字符,可以在选中块⾏⾸插⼊字符(同理可以将I换为X删除字符).4)修改⽂本rchar : ⽤char替换当前字符(r,即replace当前光标选中字符)Rtext escape : ⽤text替换当前字符直到换下Esc键(R,即进⼊Replace模式)stext escape : ⽤text代替当前字符(s,即删除当前光标选中字符,并进⼊插⼊状态)S或cctext escape : ⽤text代替整⾏(S,即删除当前光标选中⾏,并进⼊插⼊状态)cwtext escape : 将当前字改为text(cw,即删除当前光标后⼀个字,并进⼊插⼊状态)Ctext escape : 将当前⾏余下的改为text(C,即删除当前光标后字符直到⾏尾,并进⼊插⼊状态)cG escape : 修改⾄⽂件的末尾(cG,即删除当前光标后字符直到⽂件结束,并进⼊插⼊状态)ncw或cnw : 修改指定数⽬的字 (cnw,即删除当前光标后n个字符,并进⼊插⼊状态)nC : 修改指定数⽬的⾏ (nC,即删除当前光标后字符直到⾏尾,并删除之后的n-1⾏,并进⼊插⼊状态) ccursor_cmd text escape : 从当前位置处到光标命令位置处都改为text,如假设光标停留在u第10⾏,c5G text escape,即删除第5⾏到第10⾏,并进⼊插⼊状态,输⼊text,直到escape底⾏命令:n1,n2 co n3 : 将n1⾏到n2⾏之间的内容拷贝到第n3⾏下:n1,n2 m n3 : 将n1⾏到n2⾏之间的内容移⾄到第n3⾏下:n1,n2 d : 将n1⾏到n2⾏之间的内容删除:!command : 执⾏shell命令command:n1,n2 w!command : 将⽂件中n1⾏⾄n2⾏的内容作为command的输⼊并执⾏command:w!command : 将⽂件中的内容作为command的输⼊并执⾏之:r!command : 将命令command的输出结果放到当前⾏:1,10 w outfile : 保存⽂件第1⾏到第10⾏到outfile:1,10 w >> outfile : 将⽂件第1⾏到第10⾏追加到outfile⽂件结尾:r infile : 读取infile到当前光标下⼀⾏:nr infile : 读取infile到当前光标第n⾏的下⼀⾏J : 将下⼀⾏连接到当前⾏的末尾nJ : 连接后⾯n⾏5)删除⽂本x : 删除光标处的字符,可以在x前加上需要删除的字符数⽬nx : 从当前光标处往后删除n个字符X : 删除光标前的字符,可以在X前加上需要删除的字符数⽬nX : 从当前光标处往前删除n个字符dw : 删⾄下⼀个字的开头ndw : 从当前光标处往后删除n个字dG : 删除字符直到⽂件结束dd : 删除当前⾏ndd : 从当前⾏开始往后删除n⾏db : 删除光标前⾯的字ndb : 从当前⾏开始往前删除n字:n,md : 从第n⾏开始删除到第m⾏d$ : 从光标处删除到⾏尾dcursor_command : 删除⾄光标命令处,如dG将从当产胆⾏删除⾄⽂件的末尾dh : 删除光标前⼀个字符dl : 删除光标选中的那个字符dj : 删除光标选中⾏及下⼀⾏dk : 删除光标选中⾏及上⼀⾏dH : 从屏幕顶端删除⾄光标处dM : 删除屏幕中央⾏于光标之间的内容dL : 从光标处删除⾄屏幕末尾dk : 删除光标选中⾏及上⼀⾏dH : 从屏幕顶端删除⾄光标处^h或backspace : 删除前⾯的字符(插⼊状态下)^w : 删除前⾯的字(插⼊状态下)6)查找与替换:set ic : 查找时忽略⼤⼩写(ignorecase):set noic : 查找时对⼤⼩写敏感/text : 在⽂件中向前查找texttext : 在⽂件中向后查找text* : 在⽂件中向前查找当前光标选中的字n : 在同⼀⽅向重复查找N : 在相反⽅向重复查找fchar : 在当前⾏向前查找charFchar : 在当前⾏向后查找chartchar : 在当前⾏向前查找char,并将光标定位在text的第⼀个字符Tchar : 在当前⾏向后查找char,并将光标定位在text的第⼀个字符/\cstring : 查找STRING或string,⼤⼩写不敏感/jo[ha]n : 查找john或joan/\< the : 查找the,theatre或then等the开头的单词/the\> : 查找the或breathe等the结尾的单词/\< the\> : 查找 the(空格后紧跟the)/fred\|joe : 查找fred或joe/\<\d\d\d\d\> : 查找4个字符的单词/^\n\{3} : 查找连续3个空⾏:bufdo /searchstr/ : 在所有打开⽂件中查找bufdo %s/some/someelse/g : 在所有打开⽂件中查找some并⽤someelse代替& 重复最后的:s命令:g/text/command : 在所有包含text的⾏运⾏command所表⽰的命令:v/text/command : 在所有不包含text的⾏运⾏command所表⽰的命令:g/string/d : 删除所有包含string的⾏:v/string/d : 删除所有不包含string的⾏:g/text1/s/text2/text3 : 查找包含text1的⾏,⽤text3替换text2:v/text1/s/text2/text3 : 查找不包含text1的⾏,⽤text3替换text2:%s/old/new/g : 将⽂件中所有old替换为new(⼤⼩写敏感):%s/onward/forward/gi : 将⽂件中所有onward替换为forward(忽略⼤⼩写):%s/old/new/gc : 将⽂件中所有old替换为new,替换前需确认:%s/^/hello/g : 将⽂件中所有开头替换为hello:%s/$/Harry/g : 将⽂件中所有结尾替换为Harry:%s/ *$//g : 删除所有空格:%s/Bill/Steve/g : 将当前⽂件的所有Bill替换为Steve:%s/^M//g : 删除所有Dos回车符 (^M):%s/^M/\r/g : 删除所有Dos回车符转化成标准回车符:%s#<[^>]\+>##g : 删除所有HTML标记只留下内容:%s/^.∗\n\1$/\1/ : 删除重复⾏:s/Bill/Steve/ : 将当前⾏第⼀个Bill替换为Steve:s/Bill/Steve/g : 将当前⾏所有Bill替换为Steve:m,n s/Bill/Steve/ : 在m⾏和n⾏之间,将第⼀个Bill替换为Steve:m,n s/Bill/Steve/g : 在m⾏和n⾏之间,将所有Bill替换为Steve:2,35s/old/new/g : 将第2⾏到第35⾏之间所有old替换为new:5,$s/old/new/g : 将第5⾏到⽂件结尾之间所有old替换为newCtrl+a : 将光标选中的数字加1Ctrl+x : 将光标选中的数字减1ggVGg? : 将全⽂替换为回转13位⽂,变换2次可以回到原⽂.7)复制⽂本yw : 将光标后⼀个字放⼊临时缓冲区nyw或ynw : 将光标后n个字放⼊临时缓冲区y : 将当前⾏及下⼀⾏的内容放⼊临时缓冲区(命令模式下)y : 将当前光标选中的内容放⼊临时缓冲区(选择模式下)yy : 将当前⾏的内容放⼊临时缓冲区y$ : 将当前⾏光标之后的内容放⼊临时缓冲区D : 将当前⾏光标之后的内容剪切后放⼊临时缓冲区nyy : 将n⾏的内容放⼊临时缓冲区p : 将临时缓冲区中的⽂本粘贴在当前光标所在⾏下P : 将临时缓冲区中的⽂本粘贴在当前光标所在⾏上gh : 进⼊选择模式,通过光标选择内容,选择完毕后按y将选择内容删除并放⼊缓冲区,并插⼊y,进⼊插⼊模式gH : 进⼊选择模式,通过光标选择内容,选择完毕后按y将选择内容所在⾏删除并放⼊缓冲区,并插⼊y,进⼊插⼊模式gv : 进⼊选择模式,通过光标选择内容,选择完毕后按y将选择内容并放⼊缓冲区,不删除选择内容寄存器操作"(a-z)nyy : 复制n⾏放⼊名字为圆括号内的可命名缓冲区,省略n表⽰当前⾏"(a-z)ndd : 删除n⾏放⼊名字为圆括号内的可命名缓冲区,省略n表⽰当前⾏"(a-z)p : 将名字为圆括号的可命名缓冲区的内容放⼊当前⾏后"(a-z)P : 将名字为圆括号的可命名缓冲区的内容放⼊当前⾏前8)撤消与重复u : 撤消最后⼀次修改U : 撤消当前⾏的所有修改^r : 重新执⾏最近⼀次被撤消的操作. : 重复最后⼀次操作5. : 重复最后⼀次操作5次, : 以相反的⽅向重复前⾯的f、F、t或T查找命令; : 重复前⾯的f、F、t或T查找命令"np : 取回最后第n次的删除(缓冲区中存有⼀定次数的删除内容,⼀般为9)n : 重复前⾯的/或?查找命令N : 以相反⽅向重复前⾯的/或?命令9)vim中的选项:set all : 打印所有选项:set nooption : 关闭option选项:set nu : 每⾏前打印⾏号:set nonu : 每⾏前不打印⾏号:set showmode : 显⽰是输⼊模式还是替换模式:set ic : 查找时忽略⼤⼩写(另⼀种设置见下⽂):set noic : 查找时不忽略⼤⼩写:set list : 显⽰制表符(^I)和⾏尾符号:set ts=4 : 为⽂本输⼊设置tab stops:set ws=4 : 为⽂本输⼊缩进设置4字符:set window=n : 设置⽂本窗⼝显⽰n⾏:syntax on : 打开语法⾼亮:syntax off : 关闭语法⾼亮:set syntax=erlang : 强制语法⾼亮,并按erlang语法显⽰⾼亮10)vim的状态:.= 打印当前⾏的⾏号:= 打印⽂件中的⾏数^g 显⽰⽂件名、当前的⾏号、⽂件的总⾏数和⽂件位置的百分⽐:l 使⽤字母"l"来显⽰许多的特殊字符,如制表符和换⾏符11)shell转义命令:!command : 执⾏shell的command命令,如:!ls:!! : 执⾏前⼀个shell命令:r!command : 读取command命令的输⼊并插⼊,如:r!ls会先执⾏ls,然后读⼊内容:w!command : 将当前已编辑⽂件作为command命令的标准输⼊并执⾏command命令,如:w!grep all:cd directory : 将当前⼯作⽬录更改为directory所表⽰的⽬录:pwd : 显⽰当前⼯作⽬录:so file : 在shell程序file中读⼊和执⾏命令:!pwd : 执⾏pwd命令,然后回到vi!!pwd : 执⾏pwd命令,然后插⼊其输出结果到当前⽂件,并替换光标所在⾏:sh : 将启动⼀个⼦shell,使⽤^d(ctrl+d)返回vi^d或$exit : 退出临时开启的终端并回到vi12)宏与缩写(PS:避免使⽤控制键和符号,不要使⽤字符K、V、g、q、v、*、=和功能键):map key command_seq : 定义⼀个键来运⾏command_seq,如:map e ea,⽆论什么时候都可以e移到⼀个字的末尾来追加⽂本:map : 在状态⾏显⽰所有已定义的宏:umap key : 删除该键的宏:ab string1 string2 : 定义⼀个缩写,使得当插⼊string1时,⽤string2替换string1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
移动到当前屏幕的首部
:set ai
打开自动缩进
nH
移动到当前屏幕首部下的n行
:setsw=n
将移动宽度设置为n个字符
M
移动到当前屏幕的中部
:set nu
每行前打印行号
L
移动到当前屏幕的尾部
:set list
显示制表符(^I)和行尾符号
nL
移动到当前屏幕尾部上的n行
0
移到当前行的首部
$
移到当前行的尾部
ESC
回到命令模式
"xp
粘贴x缓存区到光标后
:w
保存文件但不退出
"xP
粘贴x缓存区到光标前
:w file
保存修改到file,但不退出
u
撤消最后一次修改
:wq/:x
保存文件并退出
U
撤消当前行的所有修改
:q!
不保存文件退出
.
重复最后一次修改
:e!
放弃所有修改,回滚到最后保存
,
以相反的方向重复前面f/F/t/T查找命令
nG
移动到n行
:n
移动到n行
G
移动在最后一行
在m行通过n,用nt文本替换ot文本
dd
删除整行
&
重复最后的:s命令
ndd
从当前行开始往后删除
:g/t1/s/t2/t3
查找包含t1的行,用t3替换t2
db
删除光标前面的字
:g/text/cm
在所有包含text的行运行命令cm
ndb
从当前行开始往前删除n字
w
光标向前移动一个单词
:n,md
从第m行开始往前删除n行
b
光标向后移动一个单词
d或d$
从光标处删除到行尾
e
向前移动一个单词,游标定位单词末尾
yy
拷贝当前行
(
移到当前句子的首部
nyy
拷贝n行
)
移到下一个句子的首部
p
粘贴文本到光标后
Ctrl-F
移动到下一屏
P
粘贴文本到光标前
Ctrl-B
移动到上一屏
"xnyy
拷贝n行到x缓存区,x取a~z
Ctrl-D
向下移动半屏
"xndd
剪切n行到x缓存区,x取a~z
Ctrl-U
向上移动半屏
ye
拷贝当单词的末尾
^
移到当前行第一个非空白字符的地方
VI常用命令及快捷键
:set ts=8
为文本输入设置tabstops
+
移动到下一行的第一个字符
:set ic
查找时忽略大小写
-
移动到上一行的第一个字符
:set noic
查找时对大小写敏感
删除光标处1个或n个字符
Ftext
在当前行向后查找text
X/nX
删除光标前1个或n个字符
ttext
在当前行向前查找text,并定位光标
dw
删至下一个字的开头
Ttext
在当前行向后查找text,并定位光标
ndw
从当前光标处往后删除n个字
:s/ot/nt
用nt文本替换ot文本
dG
删除行,直到文件结束
:m,ns/ot/nt
a
在光标后插入文本
;
重复前面的f、F、t或T查找命令
A
在当前行后插入文本
/text
在文件中向前查找text
i
在光标前插入文本
?text
在文件中向后查找text
I
在当前行前插入文本
n
在同一方向重复查找
oቤተ መጻሕፍቲ ባይዱ
在当前行下边插入文本
N
在相反方向重复查找
O
在当前行上边插入文本
ftext
在当前行向前查找text
x/nx