vi命令列表
vi操作命令大全完整版
v i操作命令大全HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】一vi的操作模式vi提供两种操作模式:输入模式(insert mode)和指令模式(command mode)。
在输入模式下,用户可输入文本资料。
在指令模式下,可进行删除、修改等各种编辑动作。
在输入模式下,按Esc键切换到指令模式下。
在指令模式下,按输入指令(i、a、o等)进入输入模式。
二进入vi$ vi filename直接键入“vi + 所要编辑的文件名”,即可对指定的文件进行编辑。
如果指定的文件为新文件,则提示:“New file”,否则显示该文件的当前内容。
$ view filename以只读方式打开文件filename三指令模式3.1进入输入模式a 在当前游标之后输入A 在当前行之末输入i 在当前游标之前输入I 在当前行之首输入o 在当前行之下新增一行,并在新增行输入O 在当前行之上新增一行,并在新增行输入输入结束后,按Esc键退出输入模式。
3.2游标移动h 向左移动一个字元 l 向右移动一个字元 j 向下移动一个字元 k 向上移动一个字元 b 左移一个单词,至词首 w 右移一个单词,至词尾 0 移到当前行行首 $ 移到当前行行尾 + 移至下一行的行首 - 移至上一行的行首 H 移至视窗的第一行 M 移至视窗的中间一行 L 移至视窗的最后一行 G 移至该文件的最后一行 nG 移至该文档的第n行 n+ 下移n行 n- 上移n 行3.3视窗移动*<Ctrl> + f 视窗下卷一页 *<Ctrl> + b 视窗上卷一页 <Ctrl> + d 视窗下卷半页<Ctrl> + u 视窗上卷半页 * <Ctrl> + e 视窗下卷一行 * <Ctrl> + y 视窗上卷一行3.4删除操作x 删除游标所在字元 X 删除游标前一字元 dw 从游标当前位置开始向后删除一个单词 db 从游标当前位置开始向前删除一个单词 d0 从行首删除至当前游标位置 d$ 从游标当前位置删除至行尾 dd 删除游标所在行 D 同d$3.5修改操作s 修改游标所在字元,修改完成后按Esc键结束 S 修改整行内容,修改完成后按Esc键结束 r 替换当前游标所在字元 R 进入替换状态,直至按Esc键结束 cw 修改一个单词(从游标位置至词尾) cb 修改一个单词(从词首至游标位置) cc 修改整行内容,完成后按Esc 键结束,同S c0 修改行首至游标位置的内容 c$ 修改游标位置至行尾的内容 ~ 游标所在字元大小写切换3.6指令重复在指令模式中,可在指令前面加入一个数字n,则该指令会重复执行n次。
vi的常用命令
vi的常用命令
vi是Linux系统中一种常用的文本编辑器,它可以通过命令行界面进行操作。
对于初学者来说,掌握一些vi的常用命令是必不可少的。
下面是一些常见的vi命令:
1.打开文件:vi filename
2.保存文件:先按Esc键退出编辑模式,然后输入:wq
3.放弃修改:先按Esc键退出编辑模式,然后输入:q!
4.光标移动:
h:左移一个字符
j:下移一行
k:上移一行
l:右移一个字符
5.删除字符:
x:删除光标所在的字符
dd:删除光标所在的一整行
6.撤销上一步操作:u
7.查找字符:
/char:查找字符char(向下查找)
:查找字符char(向上查找)
n:继续查找下一个匹配项
N:继续查找上一个匹配项
8.替换字符:
:r filename:将filename文件的内容插入到当前光标所在位置 :s/old/new/g:将当前行的old替换为new
:%s/old/new/g:将整个文件中的old替换为new
以上是一些vi的常用命令,掌握了这些命令后,你可以更加方便地使用vi编辑器进行文本编辑。
vi命令大全
vi命令大全进入vivi filename 打开或新建文件,并将光标置于第一行首vi +n filename 打开文件,并将光标置于第n行首vi + filename 打开文件,并将光标置于最后一行首vi +/pattern filename 打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename 在上次正用vi编辑时发生系统崩溃,恢复filenamevi filename ……filename 打开多个文件,一次进行编辑保存退出w 保存当前文件w /tmp1 另存为/tmp120,59w /tmp1 仅将20-59行之间的内存另存为/tmp1x或wq 保存退出q 退出viq!退出不保存!command 执行shell命令commandn1,n2 w!command 将文件中n1行至n2行的内容最为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入r!command 将命令command的输出结果放到当前行w!sudo tee % 保存没权限时,可获得权限再保存光标移动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 删除输入方式下所输入的文本n1,n2 d 将n1行到n2行之间的内容删除%d 删除全部内容1,$d 删除全部内容复制粘贴、剪切、移动yy 复制当前行nyy复制当前行开始的n行先按v然后方向键选择区域,按y复制选中行dd 剪切当前行p(小写)在当前光标处下面粘贴内容P(大写)在当前光标处上面粘贴内容n1,n2 co n3 将n1行到n2行之间的内容拷贝到第n3行下n1,n2 m n3 将n1行到n2行之间的内容移至到第n3行下搜索/abc 从光标开始处向文件尾搜索abc?abc 从光标开始处向文件首搜索abc/\/abc 从光标开始处向文件尾搜索/abc,其中/是转义n 在同一方向重复上一次搜索命令N在反方向上重复上一次走命令替换s/Vivian/sky/ 替换当前行第一个vivian为skys/Vivian/sky/g 替换当前行所有vivian为skyn,$s/vivian/sky 替换第n行开始到最后一行中每一行的第一个vivian为skyn,$s/vivian/sky/g 替换第n行开始到最后一行中每一行所有vivian为sky%s/vivian/sky/g (等同于g/vivian/s//sky/)替换每一行的每一个vivian 为skys#vivian/#sky/# 替换当前行第一个vivian/ 为sky/(可以使用#或+作为分隔符,此时中间出现的/ 不会作为分隔符)s/p1/p2/g 将当前行中所有p1均用p2替代n1,n2s/p1/p2/g 将第n1至n2行中所有p1均用p2替代g/p1/s/ /p2/g 将文件中所有的p1均用p2替换选项设置set number 显示行号set number! 不显示行号,其它选项同理加!号set all 列出所有选项设置情况set term 设置终端类型set ignorance 在搜索中忽略大小写set list 显示制表位(Ctrl+I)和行尾标志($)set report 显示又面向行的命令修改过的数目set terse 显示简短的警告信息set warn 在转到别的文件时若没保存当前文件则显示NO write信息set nomagic 允许在搜索模式中,使用前面不带“”的特殊字符set nowrapscan 禁止vi在搜索到达文件两端时,又从另一端开始set mesg 允许vi显示其他用户用write写到自己终端上的信息。
VI命令大全
/根目录下的文件夹输入”/”,回车里面有很多文件夹,如:etc,home,lib,mnt等等etc:存放用户名和密码home:每个用户有个文件夹,存放在这里lib:操作系统文件等mnt:挂扣用的opt:java工具bea:web编程的一些东西sbin,bin,usr:这三个文件夹都是存放unix的命令的tmp:临时文件夹常用的操作:查看当前目录:pwd修改密码:passwd更换模式:csh,bash远程登陆:telnet 服务器ip回到上级目录:cd ..查看该目录下的文件夹:ls打开文件:vi /文件夹/文件文件显示的格式:root:x:0:root…:/root;/bin/bash 用户名,加密,序号,组,默认路径退出:esc shift+: q! quit exit清空:clear显示当前目录所有文件:ls –a显示当前目录所有文件和详细信息:ls –al新建文件:vi 文件名文件的权限:chmod g –(+)r w x u g o s新建文件(不能编辑)更新文件的访问时间,如果存在文件,更新,不存在,建立:touch 文件名创建目录:mkdir 目录名/目录名创建多个目录:mkdir 目录名目录名…..在主目录创建下目录:mkdir ~/目录名创建多级目录:mkdir –p 目录名/目录名在覆盖文件前做个提示:cp –I文件和文件内容间的拷贝:cp复制目录:cp –r 目录目录复制文件:cp 文件文件移动文件:mv 要移动的文件要移动到的目录移动目录:mv -fi要移动的目录要移动到的目录修改文件或目录的名字:mv 文件名字删除文件:rm rm –I提示删除目录中的所有内容包括目录:rm –r 要删除的文件夹连接:软连接:相当于创建快捷方式,作用:修改linux内核会用到他in硬连接:如果删除源文件,被连接的文件内容还存在帮助:man 命令补全名字:table显示日历:cal输入:>输出:<查看文件内容:cat 例子:cat<文件>文件分屏显示:ls –l/目录|more合并到一个新的文件:cat a.txt b.txt设置环境变量:csh中.cshrc source cshrcbash中.profile 执行..profile或者source .profile本编辑器是所有计算机系统中最常用的一种工具。
vi命令大全
vi命令大全一、vi基本命令1)光标命令左h 上j 下k 右lnG ——n为行数,该命令立即使光标跳到指定行;n为空,光标跳到文件最后一行。
Ctrl+G——光标所在位置的行数和列数报告w,b——使光标向前或向后跳过一个单词2)编辑命令(n)dd 删除(n)yy 复制i 光标前插入a 当前字母后插入r 在当前光标处替换cw 替换光标所在处的单词(从光标开始处)dw 删除光标所在处的单词x 删除(右)X 删除(左)u 撤销. 重复上次操作o 插入新行J 合并两行A 行尾:.,3w /tmp/xx:r /tmp/xx3)查找命令f 查找/ 查找4)复制粘贴命令(n)yy 拷贝n行到剪切板p 粘贴(后)P 粘贴(当前)二、vi选项设置vi是一个强大的编辑器,它不仅可以用来处理我们平时的文本工作,还可以用来写程序文件。
在用vi进行程序编辑时,它可以实现语法加亮显示、自动缩进、括号匹配等编辑功能。
为控制不同的编辑功能,vi 提供了很多内部选项。
利用:set 命令可以设置选项。
基本语法为:: set option 设置选项option常见的功能选项包括:autoindent 设置该选项,则正文自动缩进ignorecase 设置该选项,则忽略规则表达式中大小写字母的区别number 设置该选项,则显示正文行号ruler 设置该选项,则在屏幕底部显示光标所在行、列的位置tabstop 设置按Tab 键跳过的空格数。
例如:set tabstop=n,n默认值为81)语法加亮显示: syntax on 该命令在vi中打开语法加亮显示的功能。
这样以后在输入的字符中,vi就会自动的识别出关键字,字符串以及其他的一些语法元素,并以不同的颜色来显示出来。
2)自动缩进在vi中自动缩进的选项一般有以下的几种:autoindent: 在这种缩进形式中,新增加的行和前一行有相同的缩进形式。
smartindent: 在这种缩进模式中,每一行都和前一行有相同的缩进量,同时能够正确的识别出{和},当遇到右花括号(}),则取消了缩进形式。
vi指令大全
Vi指令大全1 进入vi的命令2 移动光标类命令3 屏幕翻滚类命令4 插入文本类命令5 删除命令6 搜索及替换命令7 选项设置8 最后行方式命令9 寄存器操作进入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: 光标移至当前行首$: 光标移至当前行尾屏幕翻滚类命令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: 取出寄存器?中的内容并将其放到光标位置处。
vi命令列表
M
光标移动到这个屏幕的中央那一行
L
光标移动到这个屏幕的最下方那一行
G
移动到这个档案的最后一行常用
nG
移动到这个档案的第 n 行.例如20G则会移动到这个档案的 20 行可配合 :set nu
n<Enter>
光标向下移动 n 行常用
一般模式:
搜寻与取代
/word
向光标之后寻找一个字符串名称为 word 的字符串.常用
:1,$s/word1/word2/gc
从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 且在取代前显示提示字符给使用者确认confirm是否需要取代常用
一般模式:
删除、复制与贴上
x, X
x 为向后删除一个字符, X 为向前删除一个字符常用
nx
向后删除 n 个字符
dd
删除游标所在的那一整列常用Байду номын сангаас
:q
若曾修改过档案,又不想储存,使用 为强制离开不储存档案.
:wq
储存后离开,若为 :wq 则为强制储存后离开常用
:e
将档案还原到最原始的状态
ZZ
若档案没有更动,则不储存离开,若档案已经经过更动,则储存后离开
:w filename
将编辑的数据储存成另一个档案类似另存新档
:r filename
在编辑的数据中,读入另一个档案的数据.亦即将 『filename』这个档案内容加到游标所在行后面
ndd
删除光标所在的向下 n 列,例如 20dd 则是删除 20 列常用
d1G
删除游标所在到第一行的所有数据
dG
删除游标所在到最后一行的所有数据
vi命令大全
rchar 用char替代当前字符 Rtext escape 用text替代当前字符,直到输入ESC键结束 stext escape 用text替代当前字符 S或cctext escape 用text替代整行 cwtext escape 用text替代整行
Ctext escape 将当前字改为text cG escape 修改到文件的末尾 ccursor_cmd text escape 从当前位置处到光标命令(cursor_cmd)所指位置处都改为text
u 撤消上一次的修改 U 撤消对当前行 .( 句号) 重复上一次的修改 ,(逗号) 向相反方向重复上一次的f,F,t或T搜索命令 ;(分号) 重复上一次的f,F,t或 搜索命令 "np 恢复最后第n个删除 (即恢复缓冲区中有限数目的删除,通常为9个 ) n 重复上一次的/或?搜索命令 N 向相反方向重复上一次的/或?搜索命令
/text 在文件中向前搜索text ?text 在文件中向后搜索text n 同最初搜索相同的方向重复搜索 N 同最初搜索相反的方向重复搜索 ftext 在当前行中向前搜索text Ftext 在当前行中向后搜索text ttext 在当前行中向前搜索text,并在text字符前停止 Ttext 在当前行中向前搜索text,并在text字符后停止 :set ic 搜索时忽略大小写 :set noic 使搜索对大小写敏感 :s/oletext/newtext/ 用newtext(新文本)替代oletext(旧文本) :m,ns/oldtext/newtext 用newtext替代从m行到n 行中的oletext & 重复上一次的:s命令 :g/text1/s/text/text3 搜索包含text1的行,并用text3替代text2 :g/text/command 在所有包含text的行中运行command命令 :v/text/command 在所有不包含text的行中运行conmmand命令
vi命令表
二、移动
移动
←,↓,↑,→ 到下一行的首字符 到上一行的首字符 到单词的尾部 按单词前移 按单词后移 到行尾 到行首
命令
h,j,k,l + e或E w或W b或B $ 0(数字零)
三、其他操作
操作 从缓冲区输出文本 启动 i,如果指定了文件,就打开该文件 保存编辑、退A o(小写字母 o) O(大写字母 O) S(大写) R J ~ .(句号) u(小写) U(大写)
3/8
vi 移动命令
移动 向前滚动一屏
向后滚动一屏 向前滚动半屏 向后滚动半屏 向前滚动一行 向后滚动一行 把当前行移动到屏幕顶部并滚动 把当前行移动到屏幕中央并滚动 把当前行移动到屏幕底部并滚动 刷新当屏幕 移动到起始点——屏幕首行 移动到屏幕的中间行 移动到屏幕的末行 移动到下一行的首字符 移动到下一行的首字符 移动到上一行的首字符 移动到当前行的第一个非空格字符 移动到当前行的第 n 列 移动到词尾 移动到词尾(忽略标点) 移动到当前句子的开始 移动到下一句的开始 移动到当前段落的开始 移动到下一段落的开始 移动到当前节的开始 移动到下一节的开始 向前搜索模式 向后搜索模式 重复上次搜索 反方向重复上次搜索 向前重复上次搜索
说明
本文档内容来自 O'REILLY 出版社的《学习 vi 编辑器》,该书的中文版由机械工业出版 社出版。切勿用于商业用途。
本文档不是 vi/vim 的教程,只是列出一些快捷键和命令以方便记忆和查询。如果你需要 vim 的教程,我推荐李果正先生的《大家来学 vim》(正体中文),你可以在下面的网站浏 览这个教程或下载 pdf 文档:
其中命令是修改命令 c,文本目标是移动命令(不用输入圆括号)。但是 c 并 不是唯一需要文本目标的命令,d 命令(删除)和 y 命令(复制)也遵循这个 模式。
vi命令大全
移动光标h将光标左移一格l将光标右移一格。
k或Ctrl+p光标上移一行j或Ctrl+n光标下移一行w将光标移到下一个小字的前面。
W将光标移到下一个大字的前面。
b将光标移到前一个小字的前面。
B将光标移到前一个大字的前面。
e将光标移到下一个小字的后面。
E将光标移到前一个大字的后面。
fc把光标移到同一行的下一个c字符处。
Fc把光标移到同一行的前一个c字符处。
tc把光标移到同一行的下一个字符c的前一格。
Tc把光标移到同一行的前一个字符c的后一格。
number|把光标移到递number列上。
+或Enter把光标移至下一行第一个非空白字符。
-把光标移至上一行第一个非空白字符。
)光标移至句尾(光标移至句首}光标移至段落开头{光标移至段落结尾nG光标移至第n行首n+光标下移n行n-光标上移n行n$光标移至第n行尾H把光标移到屏幕最顶端一行。
M光标移至屏幕中间行L光标移至屏幕最后行0(注意是数字零)光标移至当前行首$光标移至当前行尾space字符光标右移一个字符屏幕翻滚Ctrl+f向后滚一页。
Ctrl+d向后滚半页。
Ctrl+b向前滚一页。
Ctrl+u向前滚半页。
Ctrl+e屏幕向下滚一行。
Ctrl+y屏幕项上滚一行。
nz将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
"?nyl字符保存到寄存器?中,其中?为一个字母,n为一个数字将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字插入文本i在光标前I在当前行首a光标后A在当前行尾o在当前行之下新开一行O在当前行之上新开一行r字符替换当前字符R字符及其后的字符,直至按ESC键替换当前字符及其后的字符,直至按ESC键s字符从当前光标位置处开始,以输入的文本替代指定数目的字符S删除指定数目的行,并以所输入文本代替之ncw或nCW修改指定数目的字nCC修改指定数目的行修改ndw或ndW删除光标处开始及其后的n-1个字do删至行首d$删至行尾ndd删除当前行及其后n-1行x或X字符,x删除光标后的,而X删除光标前的删除一个字符,x删除光标后的,而X删除光标前的Ctrl+u删除输入方式下所输入的文本cc或S修改一整行。
vi命令列表精编
复原前一个动作。(常用)
进入编辑模式
i, I
插入:在目前的光标所在处插入输入之文字,已存在的文字会向后退;(常用)
a, A
增加:由目前光标所在的下一个字开始输入,已存在的文字会向后退:(常用)
o, O
插入新的一行:从光标所在的下一行枝行首开始输入文字;(常用)
r, R
取代:r 会取代光标所在的那一个字符;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
vi命令列表精编
一般模式:
移动光标
h 或 向左方向键
光标向左移动一个字符
j 或 向下方向键
光标向下移动一个字符
k 或 向上方向键
光标向上移动一个字符
l 或 向右方向键
光标向右移动一个字符
[Ctrl] + [f]
屏幕『向前』移动一页(常用)
[Ctrl] + [b]
屏幕『向后』移动一页(常用)
[Ctrl] + [d]
$
移动到这一行的最后面字符处(常用)
H
光标移动到这个屏幕的最上方那一行
M
光标移动到这个屏幕的中央那一行
L
光标移动到这个屏幕的最下方那一行
G
移动到这个档案的最后一行(常用)
nG
移动到这个档案的第 n 行。例如20G则会移动到这个档案的 20 行(可配合 :set nu)
n<Enter>
光标向下移动 n 行(常用)
屏幕『向前』移动半页
[Ctrl] + [u]
屏幕『向后』移动半页
+
光标移动到非空格符的下一列
-
光标移动到非空格符的上一列
n<space>
vi常用命令全
vi常用命令全-----------------------------------------------------------1)文件操作vi FileName 打开文件FileName,并将光标置于第一行首。
vi +n FileName 打开文件FileName,并将光标置于第n 行首。
vi + FileName 打开文件FileName,并将光标置于最后一行。
vi + /pattern File 打开文件File,并将光标置于其中第一个于pattern 匹配的字符串处。
vi ???? FileName 在上次正用vi 编辑FileName 发生系统崩溃后,恢复FileName。
vi File1 …Filen 打开多个文件,依次对之进行编辑。
:%!xxd 按十六进制查看当前文件:%!xxd -r 从十六进制返回正常模式:n1,n2 co n3 将n1 行到n2 行之间的内容拷贝到第n3 行下。
:n1,n2 m m3 将n1 行到n2 行之间的内容移至第n3 行下。
:n1,n2 d 将n1 行到n2 行之间的内容删除。
:n1,n2 w filename 将n1 行到n2 行之间的内容保存到文件filename 中:n1,n2 w! Command 将文件中n1行到n2行的内容作为Command的输入并执行之,若不指定n1、n2,则将整个文件内容作为Command 的输入。
:r! Command 将命令Command 的输出结果放到当前行。
:nr <文件> 把<文件>插入到第n行:so <文件> 读取<文件>,再执行文件里面的命令(文件中的命令应该都是一些ex命令):l1,l2w <文件> 把第l1和第l2行之间的文本写到<文件>中去:w >> <文件> 添加到<文件>末尾. 也可以使用行号:e! 重新编辑当前文件,忽略所有的修改??(、[、{、}、]、)对应显示% 显示当前(、[、{ 、}、] 、)的对应项) 显示对应的() 显示对应的[] 显示对应的{??(、[、{、}、]、)内数据选择daB 删除{}及其内的内容(在非v可视模式下)diB 删除{}中的内容ab 选择()中的内容ib 选择()中的内容( 不含() )aB 选择{}中的内容iB 选择{}中的内容( 不含{} )??语法提示与自动补齐★<C-N><C-P> 插入模式下的单词自动完成★<C-X><C-L> 行自动完成(超级有用)??设置ctags#ctags -f /usr/share/vim/vim63/funcs.tags -R /opt/j2sdk/src /usr/src/kernels/2.6.9-5.EL-i686 ^p 自动补齐上下文已有相近项^n 自动补齐~/.tags中的相近函数^[ 显示~/.tags中的光标下的函数的原型,按^t退出函数:pta 函数名预览窗口快速打开相应函数所在文件,并将光标定位在对应函数的开头K 显示光标下的C函数的man说明手册??变量定位gd 转到光标下局部变量的定义处Gd 转到光标下全局变量的定义处??编译选项:cn 命令会把你带到下一个出错地点,而不考虑它在什么文件里。
vi命令一览表
vi命令一览表!ex, vi, view - text editors◎SYNOPSISvi [-eFGlRrSv] [-c cmd] [-t tag] [-w size] [file ...]ex [-eFGRrSsv] [-c cmd] [-t tag] [-w size] [file ...]◎DESCRIPTIONex和vi是相同程式但不同介面,ex是一行处理的(line-oriented),vi是以全萤幕为基准的(screen oriented).二者能相互切换.View相当於vi使用-R(唯读)参数◎OPTIONS-e 以ex模式开始编辑,如同用ex编辑一般。
vi -e filename 等同於 ex filename-F 当第一次编辑时,不要让vi整个档案。
(预设是整个档案,以避免当您在编辑时,他人更改这个档案。
) -R 以唯读模式开启,如同以vipw开启档案,或在命令列中设定readonly参数。
-r 重新取得某个特定档案,若没有指定档案,档案表列会被重新取得。
若没有该指定档案,档案会被视为没有-r参数编辑。
-S 以安全编辑模式启动,不允许所有的外部程式存取。
-s 进入batch模式,只能应用在ex编辑。
batch模式在执行ex scripts非常有用。
一些及时资讯及其他使用者导向的讯息被忽略(不显示),没有开始档案或环境变数被读取。
-w 设定基本的视窗大小,用以定义显示的行数。
-v 以vi模式开始编辑,如同vi 或view命令。
ex/vi从标准输入读取讯息,在vi介面,若标准输入不是一个终端机,会产生错误。
在ex介面,若标准输入不是终端机,无论如何ex会试着从他读取命令。
然而,此时会以batch模式进行,如同-s参数被指定。
移动命令:<control+A> 往下移动到这个字下次一出现的地方。
<control+B> 标向上移动一个萤幕。
<control+D> 标往下移动数行(约12行)。
vi模式下的基本指令
vi模式下的基本指令VI是一款常用的文本编辑器,具备强大的编辑功能。
下面将介绍VI 模式下的基本指令,包括光标移动、插入、删除、复制粘贴、搜索替换等操作。
一、光标移动1. h、j、k、l:分别向左、下、上、右移动光标。
2. w、b:向后、向前移动一个单词。
3. 0、$:移动到行首、行尾。
4. gg、G:跳转到文件开头、文件末尾。
5. Ctrl+f、Ctrl+b:向前、向后翻页。
二、插入与编辑1. i、a:在光标前、后插入文本。
2. o、O:在当前行下、上插入新行。
3. A、I:在行尾、行首插入文本。
4. r:替换当前字符。
5. R:进入替换模式,连续替换多个字符。
三、删除与撤销1. x、X:删除当前字符、前一个字符。
2. dd:删除当前行。
3. dw、db:删除一个单词、前一个单词。
4. D:删除光标后的内容。
5. u:撤销上一步操作。
6. Ctrl+r:恢复被撤销的操作。
四、复制与粘贴1. yy:复制当前行。
2. yw、yb:复制一个单词、前一个单词。
3. p、P:粘贴到光标后、前。
4. dd+p:交换两行位置,相当于剪切黏贴。
五、搜索与替换1. /word:向后搜索指定单词。
2. ?word:向前搜索指定单词。
3. n:跳转到下一个匹配项。
4. N:跳转到上一个匹配项。
5. :s/old/new:替换当前行第一个匹配项。
6. :s/old/new/g:替换当前行所有匹配项。
7. :%s/old/new/g:替换全文所有匹配项。
六、保存与退出1. :w:保存文件。
2. :q:退出编辑器。
3. :wq:保存并退出。
4. :q!:强制退出,不保存修改。
VI编辑器的基本指令可以提高编辑效率,适用于各种文本编辑需求。
掌握这些指令可以更加高效地编辑和管理文本文件。
希望通过本文的介绍,能帮助读者更好地使用VI编辑器进行文本编辑。
VI 命令一览表
VI 命令一览表进入vi的命令vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filenamevi filename....filename :打开多个文件,依次进行编辑移动光标类命令h 或Backspace::?? 光标左移一个字符l? 或space::?????????? 光标右移一个字符k 或Ctrl+p:????????????? 光标上移一行j 或??Enter?或Ctrl+n :光标下移一行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:取出寄存器?中的内容并将其放到光标位置处。
vi常用命令
文本编辑器是所有计算机系统中最常用的一种工具。
UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,论坛里好像这方面的总结不多,以下稍做总结,以资共享!渴望更正和补充!进入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:(注意是数字零)光标移至当前行首$:光标移至当前行尾屏幕翻滚类命令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:取出寄存器?中的内容并将其放到光标位置处。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一般模式:移动光标
h 或向左方向键光标向左移动一个字符
j 或向下方向键光标向下移动一个字符
k 或向上方向键光标向上移动一个字符
l 或向右方向键光标向右移动一个字符
[Ctrl] + [f] 屏幕『向前』移动一页(常用)
[Ctrl] + [b] 屏幕『向后』移动一页(常用)
[Ctrl] + [d] 屏幕『向前』移动半页
[Ctrl] + [u] 屏幕『向后』移动半页
+ 光标移动到非空格符的下一列
- 光标移动到非空格符的上一列
n<space> 按下数字后再按空格键,光标会向右移动这一行的 n 个字符。
例如 20<space> 则光标会向后面移动 20 个字符距离。
0 这是数字『 0 』:移动到这一行的最前面字符处(常用)
$ 移动到这一行的最后面字符处(常用)H 光标移动到这个屏幕的最上方那一行M 光标移动到这个屏幕的中央那一行
L 光标移动到这个屏幕的最下方那一行G 移动到这个档案的最后一行(常用)
nG 移动到这个档案的第 n 行。
例如 20G 则会移动到这个档案的 20 行(可配合 :set nu)
n<Enter> 光标向下移动 n 行(常用)
一般模式:搜寻与取代
/word 向光标之后寻找一个字符串名称为 word 的字符串。
(常用)
word 向光标之前寻找一个字符串名称为 word 的字符串。
:n1,n2s/word1/word2/g 在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !(常用)
:1,$s/word1/word2/g 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)
:1,$s/word1/word2/gc 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给使用者确认(confirm)是否需要取代!(常用)
一般模式:删除、复制与贴上
x, X x 为向后删除一个字符, X 为向前删除一个字符(常用)nx 向后删除 n 个字符
dd 删除游标所在的那一整列(常用)
ndd 删除光标所在的向下 n 列,例如 20dd 则是删除 20 列(常用)
d1G 删除游标所在到第一行的所有数据dG 删除游标所在到最后一行的所有数据yy 复制游标所在的那一行(常用)
nyy 复制光标所在的向下 n 列,例如 20yy 则是复制 20 列(常用)
y1G 复制游标所在列到第一列的所有数据yG 复制游标所在列到最后一列的所有数据
p, P p 为复制的数据在光标下一行贴上,P 则为贴在游标上一行!(常用)
J 将光标所在列与下一列的数据结合成同一列
c 重复删除多个数据,例如向下删除 10 行,[ 10cj ] u 复原前一个动作。
(常用)
进入编辑模式?
i, I 插入:在目前的光标所在处插入输入之文字,已存在的文字会向后退;(常用)
a, A 增加:由目前光标所在的下一个字开始输入,已存在的文字会向后退:(常用)
o, O 插入新的一行:从光标所在的下一行枝行首开始输入文字;(常用)
r, R 取代:r 会取代光标所在的那一个字符;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
Esc 退出编辑模式,回到一般模式中(常用)指令列命令模式?
:w 将编辑的数据写入硬盘档案中(常用)
:w! 若档案属性为『只读』时,强制写入该档案
:q 离开 vi (常用)
:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
:wq 储存后离开,若为 :wq! 则为强制储存后离开(常用):e! 将档案还原到最原始的状态!
ZZ 若档案没有更动,则不储存离开,若档案已经经过更动,则储存后离开!
:w [filename] 将编辑的数据储存成另一个档案(类似另存新档)
:r [filename] 在编辑的数据中,读入另一个档案的数据。
亦即将『filename』这个档案内容加到游标所在行后面
:set nu 显示行号,设定之后,会在每一行的前缀显示该行的行号
:set nonu 与 set nu 相反,为取消行号!
n1,n2 w
[filename]
将 n1 到 n2 的内容储存成 filename 这个档案。
:! command 暂时离开 vi 到指令列模式下执行 command 的显示结果!例如[ :! ls /home ]。