常⽤:xddiaou:e!:wq:q!/pattern pattern
光标控制命令h或^hk或^pl或空格GnGwWbBLMHeE(){}0或|n|^$-
向左移⼀个字符向上移⼀⾏向右移⼀个字符移到⽂件的最后⼀⾏移到⽂件的第n⾏移到下⼀个字的开头移到前⼀个字的开头移到屏幕的最后⼀⾏移到屏幕的中间⼀⾏移到屏幕的第⼀⾏移到下⼀个字的结尾
移到下⼀个字的结尾,忽略标点符号移到句⼦的开头移到句⼦的结尾移到段落的开头移到下⼀个段落的开头移到当前⾏的第⼀列移到当前⾏的第n列
移到当前⾏的第⼀个⾮空字符移到当前⾏的最后⼀个字符移到前⼀⾏的第⼀个⾮空字符
删除光标处的字符删除整⾏
在光标前插⼊⽂本在光标后插⼊⽂本当前⾏下插⼊新⾏撤销最后⼀次修改
放弃所有修改,从上次保存开始处再编辑保存退出不保存退出
从光标开始处向⽂件尾搜索pattern
从光标开始处向⽂件⾸搜索pattern
j或^j或^n向下移⼀⾏
移到下⼀个字的开头,忽略标点符号 移到前⼀个字的开头,忽略标点符号
+或return移到下⼀⾏的第⼀个字符
在vi中添加⽂本aAiIoO:r file
在光标后插⼊⽂本在当前⾏插⼊⽂本在光标前插⼊⽂本在当前⾏前插⼊⽂本在当前⾏的下边插⼊新⾏在当前⾏的上边插⼊新⾏
读⼊⽂件file内容,并插在当前⾏后
:nr file读⼊⽂件file内容,并插在第n⾏后escape回到命令模式
在vi中删除⽂本xnxXnXdwndwdGddndddbndb:n,mdd或d$
^h或backspace^w
^v char插⼊时忽略char的指定意义,这是为了插⼊特殊字符
删除光标处的字符,可以在x前加上需要删除的字符数⽬从当前光标处往后删除n个字符
删除光标前的字符,可以在X前加上需要删除的字符数⽬从当前光标处往前删除n个字符删⾄下⼀个字的开头从当前光标处往后删除n个字删除⾏,直到⽂件结束删除整⾏
从当前⾏开始往后删除删除光标前⾯的字从当前⾏开始往前删除n字从第m⾏开始往前删除n⾏从光标处删除到⾏尾插⼊时,删除前⾯的字符插⼊时,删除前⾯的字
dcursor_command删除⾄光标命令处,如dG将从当产胆⾏删除⾄⽂件的末尾
修改vi⽂本(每个命令前⾯的数字表⽰该命令重复的次数)rcharR text escapestext escapeS或cctext escapecwtext escapeCtext escapecG escape
⽤char替换当前字符
⽤text替换当前字符直到换下Esc键⽤text代替当前字符⽤text代替整⾏将当前字改为text将当前⾏余下的改为text修改⾄⽂件的末尾
ccursor_cmd text escape从当前位置处到光标命令位置处都改为text
在vi中查找与替换/texttextnNftextFtextttextTtext:set ic:set noic:s/oldtext/newtext&
:g/text/command:v/text/command
在⽂件中向前查找text在⽂件中向后查找text在同⼀⽅向重复查找在相反⽅向重复查找在当前⾏向前查找text在当前⾏向后查找text
在当前⾏向前查找text,并将光标定位在text的第⼀个字符 在当前⾏向后查找text,并将光标定位在text的第⼀个字符 查找时忽略⼤⼩写查找时对⼤⼩写敏感⽤newtext替换oldtext重复最后的:s命令
在所有包含text的⾏运⾏command所表⽰的命令在所有不包含text的⾏运⾏command所表⽰的命令
:m,ns/oldtext/newtext在m⾏通过n,⽤newtext替换oldtext:g/text1/s/text2/text3查找包含text1的⾏,⽤text3替换text2
在vi中复制⽂本yynyypP
将当前⾏的内容放⼊临时缓冲区将n⾏的内容放⼊临时缓冲区将临时缓冲区中的⽂本放⼊光标后将临时缓冲区中的⽂本放⼊光标前
\"(a-z)nyy复制n⾏放⼊名字为圆括号内的可命名缓冲区,省略n表⽰当前⾏ \"(a-z)ndd删除n⾏放⼊名字为圆括号内的可命名缓冲区,省略n表⽰当前⾏\"(a-z)p\"(a-z)P
在vi中撤消与重复uU.,;nN
保存⽂本和退出vi(保存和/或退出操作):w:w file:q!:e!
vi中的选项:set all:set nooption:set nu:set noic:set list:set ts=8
打印所有选项关闭option选项每⾏前打印⾏号查找时忽略⼤⼩写显⽰制表符(^I)和⾏尾符号为⽂本输⼊设置tab stops
保存⽂件但不退出vi
将修改保存在file中但不退出vi不保存⽂件,退出vi
撤消最后⼀次修改撤消当前⾏的所有修改重复最后⼀次修改
以相反的⽅向重复前⾯的f、F、t或T查找命令重复前⾯的f、F、t或T查找命令重复前⾯的/或?查找命令以相反⽅向重复前⾯的/或?命令
将名字为圆括号的可命名缓冲区的内容放⼊当前⾏后将名字为圆括号的可命名缓冲区的内容放⼊当前⾏前
\"np取回最后第n次的删除(缓冲区中存有⼀定次数的删除内容,⼀般为9)
:wq或ZZ或:x保存⽂件并退出vi
放弃所有修改,从上次保存⽂件开始再编辑
:set showmode显⽰是输⼊模式还是替换模式
:set window=n设置⽂本窗⼝显⽰n⾏
vi的状态
:.=打印当前⾏的⾏号:=打印⽂件中的⾏数
^g显⽰⽂件名、当前的⾏号、⽂件的总⾏数和⽂件位置的百分⽐:l使⽤字母\"l\"来显⽰许多的特殊字符,如制表符和换⾏符
在⽂本中定位段落和放置标记{[[]]
在第⼀列插⼊{来定义⼀个段落回到段落的开头处
向前移到下⼀个段落的开头处
m(a-z)⽤⼀个字母来标记当前位置,如⽤mz表⽰标记z '(a-z)将光标移动到指定的标记,如⽤'z表⽰移动到z
在vi中连接⾏
J将下⼀⾏连接到当前⾏的末尾 nJ连接后⾯n⾏
光标放置与屏幕调整HnHMLnL^y^u^d^b^f^lz-returnz.nz.z-nz-
将光标移动到屏幕的顶⾏将光标移动到屏幕顶⾏下的第n⾏将光标移动到屏幕的中间将光标移动到屏幕的底⾏将光标移动到屏幕底⾏上的第n⾏将屏幕下滚⼀⾏将屏幕上滚半页将屏幕下滚半页将屏幕上滚⼀页将屏幕下滚⼀页重绘屏幕
将当前⾏置为屏幕的顶⾏将当前⾏置为屏幕的
将当前⾏上的第n⾏置为屏幕的将当前⾏置为屏幕的底⾏
将当前⾏上的第n⾏置为屏幕的底⾏
^e(ctrl+e)将屏幕上滚⼀⾏
nz-return将当前⾏下的第n⾏置为屏幕的顶⾏
vi中的shell转义命令:!command:!!
执⾏shell的command命令,如:!ls执⾏前⼀个shell命令
:r!command读取command命令的输⼊并插⼊,如:r!ls会先执⾏ls,然后读⼊内容:cd directory将当前⼯作⽬录更改为directory所表⽰的⽬录:sh:so file
vi中的宏与缩写(避免使⽤控制键和符号,不要使⽤字符K、V、g、q、v、*、=和功能键):map key
command_seq:map:umap key:ab string1 string2:ab:una string
vi中缩进⽂本
^i(ctrl+i)或tab插⼊⽂本时,插⼊移动的宽度,移动宽度是事先定义好的:set ai:set sw=nn< 打开⾃动缩进 将移动宽度设置为n个字符使n⾏都向左移动⼀个宽度 使n⾏都向右移动⼀个宽度,例如3>>就将接下来的三⾏每⾏都向右移动⼀个移动宽度将启动⼀个⼦shell,使⽤^d(ctrl+d)返回vi在shell程序file中读⼊和执⾏命令 :w!command将当前已编辑⽂件作为command命令的标准输⼊并执⾏command命令,如:w!grep all 定义⼀个键来运⾏command_seq,如:map e ea,⽆论什么时候都可以e移到⼀个字的末尾来追加⽂本在状态⾏显⽰所有已定义的宏删除该键的宏 定义⼀个缩写,使得当插⼊string1时,⽤string2替换string1。当要插⼊⽂本时,键⼊string1然后按Esc键,系统就插⼊了string2显⽰所有缩写取消string的缩写 完! 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务