VIM命令

2018-05-20  本文已影响3人  hollson

[TOC]

# 1. 编译安装

```shell

yum -y install gcc

yum -y install ncurses-devel 

yum -y install bzip2

```---

#2. 显示行号

1.`vim  /etc/vimrc `

2.`G$`移动到文档末尾

3.追加`set  nu`,保存

---

# 3. 移动光标

| 命令    | 说明          |

| ------ | ------------ |

| 0 或 \| | 将光标定位在一行的开头。 |

| $      | 将光标定位在一行的末尾。 |

| 1G    | 移动到文件第一行。    |

| G      | 移动到文件最后一行。  |

| nG    | 移动到文件第 n 行。  |

| :n    | 移动到文件第 n 行。  |

| H      | 移动到屏幕顶部。    |

| L      | 移动到屏幕底部。    |

---

# 4. 滚动屏幕

| 命令    | 描述    |

| ------ | ------ |

| CTRL+d | 向前滚动半屏 |

| CTRL+f | 向前滚动全屏 |

| CTRL+u | 向后滚动半屏 |

| CTRL+b | 向后滚动整屏 |

| CTRL+e | 向上滚动一行 |

| CTRL+y | 向下滚动一行 |

| CTRL+I | 刷新屏幕  |

---

# 5. 编辑文件

| 命令  | 描述            |

| ---- | ------------- |

| i    | 在当前光标位置之前插入文本 |

| I    | 在当前行的开头插入文本  |

| a    | 在当前光标位置之后插入文本 |

| A    | 在当前行的末尾插入文本  |

| o    | 在当前位置下面创建一行  |

| O    | 在当前位置上面创建一行  |

---

# 6. 删除字符

| 命令  | 说明              |

| ---- | --------------- |

| x    | 删除当前光标下的字符      |

| X    | 删除光标前面的字符      |

| dw  | 删除从当前光标到单词结尾的字符 |

| d^  | 删除从当前光标到行首的字符  |

| d$  | 删除从当前光标到行尾的字符  |

| D    | 删除从当前光标到行尾的字符  |

| dd  | 删除当前光标所在的行      |

可以在命令前面添加一个数字前缀,表示重复操作的次数,例如,2x  表示连续两次删除光标下的字符,2dd 表示连续两次删除光标所在的行。

---

#7. 修改文本

| 命令  | 描述                    |

| ---- | ---------------------- |

| cc  | 删除当前行,并进入编辑模式。        |

| cw  | 删除当前字(单词),并进入编辑模式。    |

| r    | 替换当前光标下的字符。            |

| R    | 从当前光标开始替换字符,按 Esc 键退出。 |

| s    | 用输入的字符替换当前字符,并进入编辑模式。  |

| S    | 用输入的文本替换当前行,并进入编辑模式。  |

---

#8. 粘贴复制

| 命令  | 描述            |

| ---- | ------------- |

| yy  | 复制当前行        |

| nyy  | 复制n行          |

| yw  | 复制一个字(单词)    |

| nyw  | 复制n个字        |

| p    | 将复制的文本粘贴到光标后面 |

| P    | 将复制的文本粘贴到光标前面 |

---

#9. 高级命令

| 命令          | 说明                                |

| ----------- | ---------------------------------- |

| J          | 将当前行和下一行连接为一行                      |

| <<          | 将当前行左移一个单位(一个缩进宽度)                |

| >>          | 将当前行右移一个单位(一个缩进宽度)                |

| ~          | 改变当前字符的大小写                        |

| ^G          | Ctrl+G组合键可以显示当前文件名和状态              |

| U          | 撤销对当前行所做的修改                        |

| u          | 撤销上次操作,再次按 'u' 恢复该次操作              |

| :f          | 以百分号(%)的形式显示当前光标在文件中的位置、文件名和文件的总行数 |

| :f filename | 将文件重命名为 filename                  |

| :w filename | 保存修改到 filename                    |

| :e filename | 打开另一个文件名为 filename 的文件            |

| :cd dirname | 改变当前工作目录到 dirname                  |

| :e #        | 在两个打开的文件之间进行切换                    |

| :n          | 如果用 vi 打开了多个文件,可以使用 :n 切换到下一个文件    |

| :p          | 如果用 vi 打开了多个文件,可以使用 :n 切换到上一个文件    |

| :N          | 如果用 vi 打开了多个文件,可以使用 :n 切换到上一个文件    |

| :r file    | 读取文件并在当前行的后边插入                    |

| :nr file    | 读取文件并在第 n 行后边插入                    |

---

# 10. 文本查找

如果希望进行全文件搜索,可以在普通模式(按两次 Esc 键)下输入 / 命令,这时状态栏(最后一行)出现"/"并提示输入要查找的字符串,回车即可。

/ 命令是向下查找,如果希望向上查找,可以使用 ? 命令。

这时,输入 n 命令可以按相同的方向继续查找,输入 N 命令可以按相反的方向继续查找。

搜索的字符串中可以包含一些有特殊含义的字符,如果希望搜索这些字符本身,需要在前面加反斜杠(\)。

| 字符  | 说明        |

| ---- | --------- |

| ^    | 匹配一行的开头  |

| .    | 匹配一个字符    |

| *    | 匹配0个或多个字符 |

| $    | 匹配一行的结尾  |

| [ ]  | 匹配一组字符    |

如果希望搜索某行中的单个字符,可以使用 f 或 F 命令,f 向上搜索,F 向下搜索,并且会把光标定位到匹配的字符。

也可以使用 t 或 T 命令:t 命令向上搜索,并把光标定位到匹配字符的前面;T 命令向下搜索,并把光标定位到匹配字符的后面。

---

# 11. set 命令

| 命令        | 说明                                  |

| --------- | ------------------------------------ |

| :set ic  | 搜索时忽略大小写                            |

| :set ai  | 设置自动缩进(自动对齐)                        |

| :set noai | 取消自动缩进(自动对齐)                        |

| :set nu  | 显示行号。                                |

| :set sw  | 设置缩进的空格数,例如,将缩进空格数设置为4::set sw=4    |

| :set ws  | 循环搜索:如果直到文件末尾也没有查找到指定字符,那么会回到开头继续查找。 |

| :set wm  | 设置自动换行,例如,设置距离边际2个字符时换行::set wm=2 。  |

| :set ro  | 将文件类型改为只读                            |

| :set term | 输出终端类型                              |

| :set bf  | 忽略输入的控制字符,如 BEL(响铃)、BS(退格)、CR(回车)等。  |

---

# 12. 运行命令

> 切换到命令模式,再输入 ! 命令即可运行 Linux 命令。例如,保存文件前,如果希望查看该文件是否存在,那么输入

> :! ls

> 即可列出当前目录下的文件。按任意键回到 vi 编辑器。

---

# 13. 文本替换

```shell

:%s/foo/bar/g  #把全部foo替换为bar,全局替换

:%s/foo/bar/g #当前行替换foo为bar

:%s/foo/bar/gc #替换每个foo为bar,但需要确认.

:%s/\<foo\>/bar/gc #单词匹配替换, 需确认

:%s/foo/bar/gci #忽略foo大小写,替换为bar, 需确认

```

---

# 14. 常用命令

> 三种模式:普通模式、编辑模式、命令模式。

```shell

> ggVG        #全选(gg:行;    V :Visual(可视模式 ;G: 最后一行)

>yy            #复制一行

>y #复制选中

>v #选中目标

> d #删除

>u #撤销

> p/P #粘贴

```

> `shift+insert`: 从外部粘贴

> 参考:

> http://www.cnblogs.com/highway-9/p/5984285.html

> http://www.cnblogs.com/qiyuexin/p/6398606.html

> http://wiki.ubuntu.org.cn/Vimfaq

> http://ftp.vim.org/ftp/pub/vim/unix/

上一篇 下一篇

猜你喜欢

热点阅读