2.7 vim

2.7 vim #

2.7.1 vim 三种模式 #

  • 一般指令模式(Command mode):vim 的默认模式,可以用于移动游标查看内容;
  • 编辑模式(Insert mode):按下i等按键之后进入,可以对文本进行编辑;
  • 指令列模式(Bottom-line mode):按下:按键之后进入,用于保存退出等操作。

在指令列模式下,有以下命令用于离开或者保存文件。

命令 作用
:w 写入磁盘,也可以加上保存路径,如 :w /tmp/test.txt
:w! 当文件为只读时,强制写入磁盘。到底能不能写入,与用户对该文件的权限有关
:q 离开
:q! 强制离开不保存
:wq 写入磁盘后离开
:wq! 强制写入磁盘后离开

2.7.2 正常模式 #

按键 作用
I 进入插入模式,光标会移到当前行的开头位置
a 进入插入模式,光标会移动到下一个字符位置
A 进入插入模式,光标会移动到当前行末尾位置
o 进入插入模式,会向下新开一行,光标会移动到新行开头位置
O 进入插入模式,会向上新开一行,光标会移动到新行开头位置
h 前移
l 后移
j 下移
k 上移
u 撤销操作,可以多次撤销
x 单个字符删除
r 替换字符
^ 回到当前行首
$ 回到当前行尾
ctrl+r 重做,恢复撤销
yy 和 p yy 复制一行,p 粘贴

复制多行 #

比如复制 3 行,光标移到要复制的开头位置,先按 3,再按 yy,就复制了 3 行。

复制光标到行结尾 #

在光标位置,先按 y 再按 $。

跳到指定行 #

先输入行号,比如 11,再按 ctrl+g 或是 G。

按 2 下 g(小写的 g),gg 会直接跳到第一行。GG 会跳到文本最后一行。

2.7.3 命令模式 #

临时执行命令 #

:! 命令可以在命令模式临时执行命令。比如临时执行ifconfig命令。

查找替换 #

:/要查找的字符串,按 n 往下继续查找。shift+n 定位到上一个查找到的结果。

:s/old/new 在光标所在行进行替换。

:3,5s/old/new 对 3-5 行指定行进行替换。

:%s/old/new 全文替换。可以加上 g,:%s/old/new/g进行全局替换。

2.7.4 可视模式 #

按键 作用
v 字符可视模式
V(shift+v) 行可视模式
ctrl+v 块可视模式,配合 d 和I命令可以进行块的便利操作

2.7.5 常见问题 #

1. E388: Couldn’t find definition #

这个问题会导致 vim 的上下左右方向键不能使用。解决方法如下:

vim ~/.vimrc

如果家目录没有 .vimrc 文件可以 touch 新建一个。在 .vimrc 文件中添加

:set term=builtin_ansi

2. WARNING: terminal is not fully functional #

修改环境变量 TERM

export TERM=xterm

3. vim 乱码问题 #

#方式一:
vim /etc/vim/vimr

#方式二:
vim ~/.vimrc

在打开的文件末尾添加如下内容:

set fileencodings=utf-8,gb2312,gbk,gb18030
set termencoding=utf-8
set encoding=prc