编辑器 - vim 
为什么使用 vim 呢?因为它是所有 Linux 环境下自带的。  
vi / vim 的区别简单点来说,它们都是多模式编辑器,不同的是 vim 是 vi 的升级版本,它不仅兼容 vi 的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于 mac os、windows。  
   
  
vim 的基本概念 
vim 的常见三种模式(其实有好多模式,掌握常见这 3 种即可)的功能如下:  
-  
正常 / 普通 / 命令模式(Normal mode)  控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入 Insert mode 模式或者 last line mode 模式下。   -  
插入模式(Insert mode)  只有在 Insert mode 模式下,才可以做文字输入编辑。   -  
底行模式(last line mode)  文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。  如果要查看你的所有模式:打开 vim,底行模式直接输入 :help vim-modes     
【拓展】  
安装vimforcpp插件  
在使用vim前,可以安装一个vimforcpp插件,方便写C/C++代码。初学时不了安装和配置可以直接复制下面这段指令到命令行中:  
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
  
常见错误  
   如果上一次编辑时异常退出了,就会产生这样的警告,这是因为异常退出导致.swp文件没有删除,当进入vim时遇到这样的警告,按"d"将.swp文件删除即可。  
  
vim 的基本操作 
刚进入 vim 编辑器时,是处于「命令模式」下的,你要切换到「插入模式」才能够输入文字。  
- 「命令模式」切换至「插入模式」,有 3 种方式: 
  
- 按「i」进入插入模式后,从当前光标所在位置开始输入文字。
 - 按「a」进入插入模式后,从当前光标所在位置的下一个位置开始输入文字。
 - 按「o」进入插入模式后,插入新的一行,从行首开始输入文字。
    - 「插入模式」切换至「命令模式」 
   
 - 「命令模式」切换至「末行模式」 
  
- 按下「
shift + :」,其实就是输入「 : 」冒号。    - 退出 vim 操作,在「正常模式」中输入「 : 」冒号进入「末行模式」,然后输入: 
  
- w(保存当前文件)
 - wq(保存当前文件并退出 vim)
 - q!(不保存强制退出 vim)
      
   
  
vim 在命令模式中的命令集 (🌟) 
移、删、复、替、撤、更、跳,这是正常模式常用的七个类型的指令。  
移动光标:  
- vim 可以直接用键盘上的方向键来控制光标上下左右移动,但正规的 vim 是用小写英文字母「h」、「j」、「k」、「l」来分别控制光标向左、下、上、右移一格。
 - 按[gg]:移动到文本的开始
 - 按「shift+g / G」:移动到文章的最后
 - 按「 $ 」:移动到光标所在行的 “行尾”
 - 按「^」:移动到光标所在行的 “行首”
 - 按「w」:光标跳到下个字的开头(以单词为单位)
 - 按「e」:光标跳到下个字的字尾(以单词为单位)
 - 按「b」:光标回到上个字的开头(以单词为单位)
 - 按「#l」:光标移到该行的第 # 个位置,如:5l、56l
 - 按「#G」:光标移动到第 # 行
 - 按「#j / k」光标向下 / 上移动 # 行
 - 按「ctrl」+「b」:光标往上移动一页
 - 按「ctrl」+「f」:光标往下移动一页
 - 按「ctrl」+「u」:up 光标往上移动半页
 - 按「ctrl」+「d」:down 光标往下移动半页
   
删除文字:  
- 「x」:每按一次,删除光标所在位置的一个字符(常用)
 - 「#x」:例如,「6x」删除光标后面6个字符(包括光标所在位置)
 - 「shift+x / X」:大写的 X,每按一次,删除光标所在位置的 “前面” 一个字符(不包括光标所在位置)
 - 「#X」:例如,「20X」表示删除光标所在位置的 “前面” 20个字符
 - 「dd」:删除光标所在行(常用)
 - 「#dd」:从光标所在行开始删除 # 行
   
👉 这里的删除本质上都是剪切,可以通过p进行粘贴。  
复制文字:  
- 「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
 - 「#yw」:复制 # 个字到缓冲区。
 - 「yy」:复制光标所在行到缓冲区。(常用)
 - 「#yy」:例如,「6yy」表示拷贝从光标所在的行(包含自己在内) “往下数” 6 行文字。
 - 「p」:将缓冲区内的字符粘贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。(常用)
 - 「#p」:将缓冲区内的字符粘贴 # 份到光标所在位置。
 - yy + p:复制粘贴
 - dd + p:剪切粘贴
   
替换操作:  
- 「r」:替换光标所在处的字符(局部文本替换)。(常用)
 - 「R」:替换光标所到之处的字符,直到按下「ESC」键为止(整体文本替换)。
   
字母大小写转换:  
- 「shift+~」:先按下 shift 键,再按下波浪号 ~ 不要停,往后遇到的所有小写字母将被转成大写,所有大写字母将被转成小写。
   
撤销上一次操作:(常用)  
- 「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次 “u” 可以执行多次恢复,相当于Windows下的Ctrl+z
 - 「ctrl + r」: 撤销的恢复,相当于Windows下的Ctrl+y
   
更改操作:  
- 「cw」:更改光标所在处的字到字尾处。
 - 「c#w」:例如,「c3w」表示更改3个字。
   
跳至指定的行:  
- 「ctrl」+「g」列出光标所在行的行号。
 - 「#G」:例如,「15G」表示移动光标至文章的第 15 行行首。
   
  
vim 在末行模式中的命令集 (🌟) 
在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再输入「 : 」冒号即可进入末行模式。  
列出行号:  
- 「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。
   
跳到文件中的某一行:  
- 「#」:# 号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字 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 + ww 组合键可以切换文件(w 要按两下)。     
跑任何想跑的命令:  
 
拓展(添加/取消多行注释 和 替换命令)(?) 
vim 中批量添加 & 删除注释:  
多行注释:  
-  
进入命令行模式,按ctrl + v进入 visual block模式,然后按j, 或者k选中多行,把需要注释的行标记起来   -  
再按「shift + i / I 」键(大写字母),进入“Insert” 插入模式,插入注释符,例如//   -  
最后按「ESC」键,就会全部注释了     
取消多行注释:  
-  
进入命令行模式,按ctrl + v进入 visual block模式,按字母l(L)横向选中列的个数,例如 // 需要选中2列   -  
按字母j,或者k选定要去注释的行,将注释符号//两个斜杠全部覆盖   -  
按d/x键就可全部取消注释     
替换命令  替换的功能,在我们开发过程中可谓天天使用,使用命令如下:  
0:%s/string1/string2/g
  
简单解释一下:  
0:表示从第0行到最后一行搜索一个叫string1的字符串
%s : s表示切换到替换模式下去 
string1/string2,即把string1替换成string2
g : 强制替换不用提示
  
首先将光标移动至要进行替换的行,按":“进入底行模式,键入s/,后面跟要被替换的字符,再键入”/“,后面跟替换后的字符,最后面再跟一个”/"。  如图:     这个指令的含义是,将光标所在行的main替换成linux。  替换结果:  
   
此外,还可可以在s前面加"%",表示全文,或"num1,num2"指定行,而在后面加"g"表示当前行所有。  
   
这个语句的含义是,将全文所有的main替换成linux。  替换结果:  
   
  
如何配置 vim 编辑器(vim 配置成本太高,一般建议直接使用别人配置好的)  
-  
配置文件的位置  
   
   -  
在目录 /etc/ 下面,有个名为 vimrc 的文件,这是系统中公共的 vim 配置文件,对所有用户都有效。   -  
在每个用户的主目录 ~ 下,都可以自己建立私有的配置文件,命名为:.vimrc。  比如 root 用户的 /root 目录下,通常已经存在一个 .vimrc 文件,如果不存在,则创建之。   -  
切换用户成自己,执行 su ,执行 cd ~ 进入自己的主工作目录。  然后执行 vim .vimrc 打开自己目录下的 .vimrc 文件。添加配置选项即可。     
     -  
常见的一些配置选项  
   
   - 设置语法高亮:
syntax on - 显示行号:
set nu - 设置 tab 缩进的空格数为 4:
set shiftwidth=4   
     -  
使用插件配置 vim  
   
   要配置好看的 vim,原生的配置可能功能不全,可以选择安装插件来完善配置,需要保证用户是你要配置的用户。  
      
                
                
                
        
        
    
  
 
 |