Linux——vim
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)
命令模式
- 命令模式(输入的按键都是命令)
- 移动光标的命令:
- h j k l ------> 左 下 上 右 (可以配合数字使用)(100j 往下面移动100行)
- gg -----> 光标直接回到第一行
- G -------> 光标去到最后一行
- 100G -----> 光标直接去到100行
- w e ------> 光标移到下一个单词的第一个字母/光标移到下一个单词的最后一个字母
- 0 $ -----> 光标到行首/光标到行尾
- Ctrl + f / ctrl + b ----->向下 / 向上翻页
- ctrl + e / ctrl + y -----> 向下 / 向上翻行
- 编辑内容:
- dd 100dd ----> 删行 / 删100行
- d0 / d$------> 从光标所在的位置一直删到行首/ 从光标所在的位置一直删到行末
- dw -----> 删除光标所在位置后面的单词
- yy / 10yy / p / 10p ------> 复制代码/ 复制10行代码 / 粘贴复制的代码 / 复制的代码粘贴10次
- 撤销和重做
- u -------> 撤销
- Ctrl + r ------> 重做
- 重复上一个命令
- . -------> 重复上一个命令
- 录制宏和播放宏(以批量缩进为例)
- qa(q表示录制,a是变量名(保存宏的寄存器)) —> recording做操作-----> 0(回到行首) -----> i(进入编辑模式) ------> 敲制表键缩进 -----> esc(进入命令模式) —> j (让光标回到下一行) —> q (结束录制)
- @a -----> 播放宏
- 100@a -----> 录制的操作重复100遍
- 移动光标的命令:
末行模式
- 末行模式(底线命令模式) -----> 配置vim、保存退出、查找替换
- /关键字 --------> 从上往下搜,按小写的n ,进行正向搜索,按大写的N进行反向搜索
- ?关键字 --------> 从下往上搜,按小写的n ,进行正向搜索,按大写的N进行反向搜索
- 在进行搜索之后想取消高亮就在末行模式里输入:nohls
- 恢复高亮:set hls
- 替换:1,$s/新闻/狗屎/g (从第vim一行到最后一行所有的新闻都替换成狗屎,s代表替换,新闻是被替换的内容,狗屎是替换的内容,g代表全局替换)
- 也可以:300,500$s/关键字/替换的内容(300,500是行号)
- g -----> global ----->全局模式
- c -------> confirm ----->需要确认
- i -------> ignore-case ------>忽略大小写
- 拆分窗口:sp / vs ---->水平拆分 / 垂直拆分
- 拆分了窗口之后,可以在窗口中切换文件
- 将光标移到需要切换文件的窗口,进入末行模式,再输入:b 文件序号
- 切换窗口: 两次ctrl + w
- 退出窗口:末行模式输入:wqa
- 文件之间进行版本比较:
- vim -d 文件1 文件2 : 可以找出两个文件不一样的地方,进行版本比较
- diff 文件1 文件2
- 显示行号:set nu
- 设置制表键的空格数:set ts=4
- 设置自动缩进:set autoindent
- 末行模式下可以执行系统命令,只需要在原来的命令前加上!即可
- 保存:w / w!/ w hello.py
- 退出:q / q! (强制性退出)/ qa
- 保存退出:wq
编辑模式
- 编辑模式
- 进入编辑模式
- i I a A o O
- 这几个都可以进入编辑模式,只是进入的方式有些许的不同
- i, I : i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』
- a, A : a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』
- o, O :是英文字母 o 的大小写。o 为在目前光标所在的下一行处输入新的一行; O 为在目前光标所在的上一行处输入新的一行!
- i I a A o O
- 按ESC回到命令模式
- 保存退出:
- ZZ
- 命令模式下按: 进入末行模式:
- 保存 :w / w! / w hello.py
- 退出 / 强行退出 / 退出所有: q / q! / qa
- 保存退出:wq
- 进入编辑模式