vi部分命令
具体命令 vi file 编辑file vi –r file 系统崩溃后,编辑保存的最后一个file版本 vi –R file 在只读模式下编辑file vi +n file 在只读文件并将光标置于第N行 vi + file 编辑文件并将光标置于最后一行 vi file1 file2 file3… 通过文件file3编辑file1,并且保存对file1的改动后, 你可以通过键入:n移动到file2 vi +/string file 编辑文件并将光标置于包含有string的行的开头 a 在光标后添加新的文本 A 在当前行的末尾添加新的文本 i 在光标前插入新的文本 I 在当前行的头部插入新的文本 o 在当前行的下面打开一行并插入 O 在当前行的上面打开一行并插入 :r file 读取file并在当前行后插入 :nr file 读取file并在第N行后插入 Escape 返回到命令模式 ^v char 插入时忽略char的特殊意思。这用于插入特殊的字符
x 删除光标处的字符。在X的前面加上一个数字则可确定要删除的字符数 nx 删除以光标处开始的N个字符 X 删除前面的字符。在X的前面加上一个数字则可确定要删除的字符数 nX 删除前面的n个字符 dw 删除到下一个单词的开始处为止 ndw 删除以当前单词为开头随后的n个单词 dG 删除行一直到文件的结尾 dd 删除整个行 ndd 删除以当前行开始的n行 db 删除前一个单词 ndb 删除以当前行开始的n 行 :n,md 删除n到m之间的行 D or d$ 从光标处开始一直删除到行的结尾 dcursor_command 删除光标命令(cursor_command)所指处的文本, dG将从当前行删除到文件的结尾 ^h或backspac 插入时删除前一个字符 ^w 插入时删除前一个字符
rchar 用char替代当前字符 Rtext escape 用text替代当前字符,直到输入ESC键结束 stext escape 用text替代当前字符 S或cctext escape 用text替代整行 cwtext escape 用text替代整行
vi部分命令
Ctext escape 将当前字改为text cG escape 修改到文件的末尾 ccursor_cmd text escape 从当前位置处到光标命令(cursor_cmd)所指位置处都改为text
/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命令
yy 移出当前行 nyy 移出n行 p(小写) 在光标后放置已移出的文本 P(大写) 在光标前放置已移出的文本 "(a--z)nyy 复制n行到命名缓冲区,缓冲区的名字为括号中的字母。省略n将只复制当前行 "(a--z)ndd 复制n行到命名缓冲区,缓冲区的名字为括号中的字母。省略n将只删除当前行 "(a--z)p 在当前行后放置命名缓冲区中的行,缓冲区的名字为括号中的字母 "(a--z)p 在当前行放置命名缓冲区中行,缓冲区的名字为括号中的字母
u 撤消上一次的修改 U 撤消对当前行 .( 句号) 重复上一次的修改 ,(逗号) 向相反方向重复上一次的f,F,t或T搜索命令 ;(分号) 重复上一次的f,F,t或 搜索命令 "np 恢复最后第n个删除 (即恢复缓冲区中有限数目的删除,通常为9个 ) n 重复上一次的/或?搜索命令 N 向相反方向重复上一次的/或?搜索命令
:w 保存文件,但不退出vi :w file 保存file中的修改,但不退出vi :wq或ZZ或:x 保存文件并退出vi
vi部分命令
:q! 不保存文件退出vi :e! 重新编辑文件,放弃上一次书写时的修改
:set :set :set :set :set :set :set :set
all 打印所有选项 nooption 关闭option选项 nu 设置每行前面加上行号 showmode 显示是输入模式还是替代模式 noic 搜索时忽略大小写 list 显示制度(tab)符(^|)和行结尾符($) ts=8 设置制表(tab) 符的大小(即每次击tab键移动的字符数) window=n 设置文本窗口中的行数为n
:.= 打印当前行数 := 打印文件的行数 ^g 显示文件名,当前行数,文件中的总行数和文件位置的百分比 :| 使用字母"|"来显示各种不同的特殊字符,如制表符(tab)和换行符(newline)
} 在第一列插入{来定义一节 [[ 返回到一节的开头 ]] 向前跳到下一节的开头 m(a--z) 使用字母标记当前位置,比如mz标记z (a--z) 移动光标到指定的标记处,比如' z将移动到z处
J 将下一行连接到当前行的末尾 nJ 连接随后的n行 H 将光标移动到屏幕的顶行 nH 从屏幕的顶行移动到第n行 M 将光标移动到屏幕的中间 L 将光标移动到屏幕的底行 nL 从屏幕的底行将光标移动到第n行 ^e(control--e) 将光标向上移动一行 ^y 将光标向下移动一行 ^u 将屏幕向上移动半页 ^d 将屏幕向下移动半页 ^b 将屏幕向上移动一页 ^f 将屏幕向下移动一页 ^l(letter |) 刷新屏幕 z-return 使当前显示在屏幕的顶部 nz-return 使第n行显示在屏幕的顶部 z. 使当前行成为中间行 nz 在屏幕上使第n行成为中间行 z- 使当前行成为底行 nz- 使第n行在屏幕上成为底行
vi部分命令
:! Command 执行诸如:!Is之类的
shell命令command :!! 执行最后一个shell命令 :r! command 从command读取和插入输出,例如:r!Is运行Is并读取内容 :w! command 将当前被编辑的作为标准输出发送给command ,并执行command, 如:w!grep all :cd directory 将当前工作目录变成directory :sh 启动一个子shell并用^d(control -d)返回vi :so file 在shell程序file中读取和执行命令
:map key command_seq text 定义key来运行commanf_seq, 例如:无论何时利用e移动一个单词的末尾时,用:map e ea来添加 :map key command_seq text 在状态行上显示所有被定义的宏命令 :umap key 消除key的宏 :ab string1 string2 当插入string1时定义一个缩写,用string2代替string1。 当插入文本类型string1时,按escape键,这时将插入string2 :ab 显示所有的缩写 :cd directory 将当前工作目录改变到directory :una string 非缩写化string 避免使用控制键盘,符号,并且不使用字符:KVgqv*=和功能键
^I(control键加I)或tab 在插入文本时,插入移位宽度。移位宽度可以定义 :set ai 打开自动缩进功能 :set sw=n 设置移位宽度为n个字符 n<< 将n行左移一个移位宽度 n>> 将n行右移一个移位宽度。例如,3>>是将后面的三行右移一个移位宽度
!cursor_command command 将文本发送到shell_command,从当前位置
^ 匹配一行的开头。为了在行的开头搜索think,可以使用\^think可以和$结合使用,$匹配行的尾部 $ 用:g/^$/d删除所有的空行匹配行的尾部。匹配last,只要它跟有新行符你可以使用::g/^$/d . 匹配任何单个的字符 \< 匹配词的开头 \> 匹配词的尾部 [string] 匹配在strng中的任意单个字符。为了搜索到mp,mP,MP或MP可以使用:/[mM[pP] 将所有的input或Input改为INPUT: :%/[li]nput/INPUT/g [^string] 匹配不在string中的任意字符 [a-p] 匹配在a和p中的任意字符
vi部分命令
* 匹配零个或多个出现在表达式前面的字符 \ 下一个字符转意。为了搜索[,可以使用一下方法:^[ \\ 转意\字符
vi部分命令
vi部分命令
vi部分命令
vi部分命令
匹配行的尾部
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新资格考试认证vi命令大全(3)全文阅读和word下载服务。
相关推荐: