文章目录
1.vim 的基本概念
vim 的常见三种模式(其实有好多模式,掌握常见这 3 种即可)的功能如下:
- 正常 / 普通 / 命令模式(Normal mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入 Insert mode 模式或者 last line mode 模式下。
- 插入模式(Insert mode)
只有在 Insert mode 模式下,才可以做文字输入编辑。
- 底行模式(last line mode)
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。
2 vim 的基本操作
刚进入 vim 编辑器时,是处于正常模式下的,需要切换到插入模式才能够输入文字。
- 正常模式切换至插入模式,有 3 种方式:
按i进入插入模式后,从当前光标所在位置开始输入文字。
按a进入插入模式后,从当前光标所在位置的下一个位置开始输入文字。
按o进入插入模式后,插入新的一行,从行首开始输入文字。 - 插入模式切换至正常模式
按ESC
键。 - 正常模式切换至末行模式
按下shift + :
,其实就是输入 : 冒号。
退出 vim 操作,在正常模式中输入 : 冒号进入末行模式,然后输入:
w(保存当前文件)
wq(保存当前文件并退出 vim)
q!(不保存强制退出 vim)
3 vim 在正常模式中的命令集
下面的所有的n代表的是一个数字;+代表+号两边两个键一起按下
移动光标:
vim 可以直接用键盘上的方向键来控制光标上下左右移动,但正规的 vim 是用小写英文字母「h」、「j」、「k」、「l」来分别控制光标向左、下、上、右移一格。
下面是几个移动光标的命令:
- gg:进入到文本开始
- shift+g / G:移动到文章的最后
- $ :移动到光标所在行的 “行尾”
- ^:移动到光标所在行的 “行首”
- w:光标跳到下个字的开头(以单词为单位)
- e:光标跳到下个字的字尾(以单词为单位)
- b:光标回到上个字的开头(以单词为单位)
- n+l:光标移到该行的第 n个位置,如:5l、56l
- n+G:光标移动到第 n 行
- n+j / k光标向下 / 上移动 n 行
删除文字:
- x:每按一次,删除光标所在位置的一个字符(常用)
- n+x:例如,「6x」表示删除光标所在位置的 “后面(包含自己在内)” 的 6 个字符
- shift+x / X:大写的 X,每按一次,删除光标所在位置的 “前面” 一个字符
- n+X:例如,「20X」表示删除光标所在位置的 “前面” 20个字符
- dd:删除光标所在行(常用)
- n+dd:从光标所在行开始删除 # 行
复制文字:
- yw:将光标所在之处到字尾的字符复制到缓冲区中。
- n+yw:复制 n 个字到缓冲区。
- yy:复制光标所在行到缓冲区。(常用)
- n+yy:例如,6yy表示拷贝从光标所在的行(包含自己在内) “往下数” 6 行文字。
- p:将缓冲区内的字符粘贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。(常用)
- n+p:将缓冲区内的字符粘贴 n 份到光标所在位置。
- yy + p:复制粘贴
- dd + p:剪切粘贴
替换操作:
-
r:替换光标所在处的字符(局部文本替换)。(常用)
-
R:替换光标所到之处的字符,直到按下ESC键为止(整体文本替换)。
字母大小写转换: -
shift+~:先按下 shift 键,再按下波浪号 ~ 不要停,往后遇到的所有小写字母将被转成大写,所有大写字母将被转成小写。
撤销上一次操作:(常用)
- u:如果您误执行一个命令,可以马上按下u,回到上一个操作。按多次 “u” 可以执行多次恢复。(撤销)
- ctrl + r: 撤销的恢复。(重做相当于window下的ctrl+y)
更改操作:
- c+w:更改光标所在处的字到字尾处。
- c+n+w:例如,c3w表示更改3个字。
跳至指定的行:
- ctrl+g列出光标所在行的行号。
- n+G:例如,15G表示移动光标至文章的第 15 行行首。
4 vim 在末行模式中的命令集
在使用末行模式之前,请记住先按ESC键确定您已经处于正常模式,再输入 : 冒号进入末行模式,然后输入下列指令才会有效。
列出行号:
- set nu:输入set nu后,会在文件中的每一行前面列出行号。
- set nonu:取消set nu列出的行号。
跳到文件中的某一行:
- n:n 表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字 15,再回车,就会跳到文章的第 15 行。
查找字符命令:
- /word:向光标之下寻找一个名称为 word 的字符串,如果第一次找的关键字不是您想要的,可以一直按n键向下继续寻找该关键字。(常用)
- ?word:向光标之上寻找一个字符串名称为 word 的字符串,如果第一次找的关键字不是您想要的,可以一直按n键向上继续寻找该关键字。
批量化替换字符命令:
- %s/printf/cout/g(把文中所有 printf 替换成 cout,g --global 表示全局的意思)(常用)
查看函数手册命令:
- !man [选项] [函数名](按 q 退出手册)(常用)
保存文件命令:
-
w: 在冒号输入字母w就可以将文件保存起来。可以跟一个感叹号 w! 强制保存。
退出 vim 命令: -
q:按q就是退出,如果无法退出 vim,可以跟一个感叹号 q! 强制退出 vim。
-
wq:一般建议退出时,搭配w一起使用,这样在退出的时候还可以保存文件。(常用)
多文件多屏操作:
比如:如果我们想把 test.c 文件中的 10 行代码复制 test1.c 文件中,该如何操作呢?
-
vs test1.c(在 vim 中打开 test1.c 文件,左右分屏)
-
按 ctrl + w + w 组合键可以切换到另一个屏幕(w 要按两下)。
在末行模式下跑任何想跑的命令:
格式 !命令
(! 表示底行执行 bash 命令),比如:
!ls -l
!gcc -o test test.c
5 如何配置 vim 编辑器
- 在目录 /etc/ 下面,有个名为 vimrc 的文件,这是系统中公共的 vim 配置文件,对所有用户都有效。
- 在每个用户的主目录 ~ 下,都可以自己建立私有的配置文件,命名为:.vimrc。
- 比如 root 用户的 /root 目录下,通常已经存在一个 .vimrc 文件,如果不存在,则需要自己手动创建,切换用成你自己想要配置的用户,执行 su ,执行 cd ~ 进入自己的主工作目录。
- 最后执行 vim .vimrc 打开自己目录下的 .vimrc 文件。添加配置选项即可。
常见的一些配置选项
设置语法高亮:syntax on
显示行号:set nu
设置 tab 缩进的空格数为 4:set shiftwidth=4
其他配置选项老铁们可以自行搜索这里就不过多赘述。