您的位置:首页 > 运维架构 > Shell

vi 常用命令 |summary

2011-11-05 19:36 246 查看
 
两种模式:插入模式+命令行模式(命令行模式+底行模式)

说明:第一列*表示常用程度

 

---基本篇

1 进入vi

vi file --默认命令行模式,切换到插入模式[i]

2 esc -退出插入模式

3 保存:命令行模式下

:w filename (输入 「w filename」将文章以指定的文件名filename保存)

:wq (输入「wq」,存盘并退出vi)

: q! (输入q!, 不存盘强制退出vi)

:sh 切换到shell状态

 

--命令行模式功能键

1 进入输入模式

*** a 在当前游标之后输入   

 A 在当前行之末输入   

*** i 在当前游标之前输入   

 I 在当前行之首输入   

*** o 在当前行之下新增一行,并在新增行输入   

 O 在当前行之上新增一行,并在新增行输入 

esc:退出输入模式

 

2 游标移动

*** h 向左移动一个字元   

*** l 向右移动一个字元   

*** j 向下移动一个字元   

*** k 向上移动一个字元   

* b 左移一个单词,至词首   

* w 右移一个单词,至词尾   

* 0 移到当前行行首   

* $ 移到当前行行尾   

 + 移至下一行的行首   

 - 移至上一行的行首   

 H 移至视窗的第一行   

 M 移至视窗的中间一行   

 L 移至视窗的最后一行   

 G 移至该文件的最后一行   

 nG 移至该文档的第n行   

 n+ 下移n行   

 n- 上移n行 

按数字「0」:移到文章的开头。

按「G」:移动到文章的最后。

按「$」:移动到光标所在行的"行尾"。

按「^」:移动到光标所在行的"行首"

按「w」:光标跳到下个字的开头

按「e」:光标跳到下个字的字尾

按「b」:光标回到上个字的开头

按「#l」:光标移到该行的第#个位置,如:5l,56l。

 

3 视窗移动

*** <Ctrl> + f 视窗下卷一页   

*** <Ctrl> + b 视窗上卷一页   

 <Ctrl> + d 视窗下卷半页   

 <Ctrl> + u 视窗上卷半页   

* <Ctrl> + e 视窗下卷一行   

* <Ctrl> + y 视窗上卷一行 

 

4 删除操作

*** x 删除游标所在字元   

 X 删除游标前一字元   

* dw 从游标当前位置开始向后删除一个单词   

 db 从游标当前位置开始向前删除一个单词   

* d0 从行首删除至当前游标位置   

* d$ 从游标当前位置删除至行尾   

*** dd 删除游标所在行   

 D 同d$ 

 

5 修改操作 

*** s 修改游标所在字元,修改完成后按Esc键结束   

 S 修改整行内容,修改完成后按Esc键结束   

* r 替换当前游标所在字元   

* R 进入替换状态,直至按Esc键结束   

* cw 修改一个单词(从游标位置至词尾)   

 cb 修改一个单词(从词首至游标位置)   

* cc 修改整行内容,完成后按Esc键结束,同S   

* c0 修改行首至游标位置的内容   

* c$ 修改游标位置至行尾的内容   

 ~ 游标所在字元大小写切换 

 

6 指令重复 

*** nx 删除n个字元   

*** ndd 删除n行   

*** ns 修改n个字元 

 

7 取消前一动作(Undo) 

*** u 撤消上一指令的结果 

 

8 查找字符串 

*** /字符串 从当前游标向后查找该字符串   

*** ?字符串 从当前游标向前查找该字符串   

*** n 从当前游标向后查找下一个字符串   

*** N 从当前游标向前查找下一个字符串 

 

 

1 环境设置

:set 显示已设置的环境状况   

 :set all 显示所有的环境设置选项   

* :set nu 显示行号   

* :set nonu 不显示行号   

* :set ts=n 设置Tab键的长度为n 

 

2 执行指令

 * :10,20d 删除第10行至第20行的内容   

 :10d 删除第10行的内容   

 :%d 删除全部内容   

* :10,20co30 将第10行至第20行的内容复制到第30行之后   

* :10,20mo30 将第10行至第20行的内容移动到第30行之后   

 :1,$s/old/new 将第1行至最后一行中的old替换成new   

 :1,$s/^/new 将第1行至最后一行的内容前面插入new   

* :10 将游标移至第10行 

3 重复指令

 . 重复上一条指令 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell 文档 file c