vim 提升效率命令

一、命令行模式下:

  1、命令线路图

    1、重复次数

      在命令模式下,先输入一个数字,在跟上一个命令,可以让该命令 重复执行指定次数

    2、移动和选择

      vi 之所以快,关键在与能够快速定位到要编辑的代码行  

      移动命令能够和编辑操作命令组合使用

    3、编辑操作

      删除、复制、粘贴、替换、缩排……

    4、撤销和重复

    5、查找替换

    6、编辑

  学习提示:

    1、vi 的命令比较多,不要期望一下子全部记住,个别命令忘记了,只是会影响编译速度而已

    2、在使用vi命令时,注意关闭中文输入法

  2、删除或修改错误撤销

    u : 撤销命令  

    ctrl + r :反撤销命令 

    行数 + G :  可以调到注定的行数,比如 18G,就可以跳到18行了

   3、打开文件并且定位行

    在日常工作中可能会遇到打开一个文件,并定位到指定行的情况

    例如在开发中知道某一行代码错误,可以快速定位到出错代码行位置

    这个时候就可以用一下命令打开文件

vim 文件名+行数:可以在打开文件的同时,跳到指定的行数上,比如 vim test.txt +18 

    提示:如果只带上 + 号,而不指定行号,会直接定位到文件的末尾

  4、异常处理

    如果 vi 异常退出,在磁盘上可能会保存有交换文件

    下次再使用 vi 编辑该文件时,会看到一下屏幕信息,按下字母 d 可以删除交换文件即可

   提示:按下键盘时,注意关闭输入法

  5、三种工作模式

    vi 有三种工作模式:

      1、命令模式

        打开文件首先进入命令模式,是使用 vi 的入口

        通过命令对文件进行常规的编辑操作,例如:定位、翻页、复制、粘贴、删除……

        在其他图形编辑器下,通过快捷键鼠标实现的操作,都在命令模式下实现

      2、末行模式

        要退出 vi 返回到控制台,需要在末行模式下输入命令

        末行模式是 vi 的出口

      3、编辑模式 -- 正常的编辑文字

        

        提示:在 Touch Bar  的Mac电脑上,按 Esc 不方便,可以使用 ctrl + [ 代替

  6、移动(基本

    要熟练使用 vi ,首先要学会怎么在命令模式下快速移动光标

    编辑操作命令,能够和移动命令结合在一起使用

    1、上下左右

命令 功能 手指
h 向左 食指
j 向下 食指
k 向上 中指
l 向右 无名指

  

 

 

 

 

 

2、行内移动

命令 英文 功能
w work 向后移动一个单词
b back 向前移动一个单词
0   行首
^   行首,第一个不是空白字符的位置
$   行尾


3、行数移动

命令 英文 功能
gg go 文件顶部
G go 文件尾部
数字gg go 移动到数字对应的行数
数字G go 移动到数字对应的行数
:数字   移动到数字对应的行数

4、屏幕移动

命令 英文 功能
Ctrl+b back 向上翻页
Ctrl+f forward 向下翻页
H Head 屏幕顶部
M Middle 屏幕中间
L Low 屏幕底部

  7、移动(程序)(段落移动)

    1、段落移动

      vi 中使用空行来区分段落

      在程序开发时,通常一段功能相关的代码会写在一起  --  之间没有空行

命令 功能
{ 上一段
} 下一段

    2、括号切换

      在程序世界中,{}、[]、()  使用频率很高,而且都是成对出现的

命令 功能
% 括号匹配及其切换

    3、标记

      在开发时,某一段代码可能需要稍后处理,例如:编辑、查看

      此时先试用 m 增加一个标记,这样可以在需要时快速的跳转回来或者在执行其他编辑操作  

      标记名称可以是a~z 或者 A~Z 之间的任意一个字母

      添加了标记的行如果被删除,标记同时也会被删除

      如果在其他的行也添加了相同名称的标记,之前添加的标记也会被替换掉      

命令 英文 功能
mx mark 添加标记X,X是a~z或者A~Z之间的人一个字母
'X   直接定位到标记X所在的位置(注意:这里是英文的单引号

  8、选中文本(可视模式)

    学习复制命令前,应该学会怎么选中要复制的代码

    在 vi 中要选中文本,需要先试用 Visual 命令切换到可视模式

    vi 中提供了三种可视模式,可以方便程序员选择选中文本的方式

    按下 ESC 可以放弃选中,返回到命令模式

命令 模式 功能
v 可视模式 从光标位置开始,按照正常模式选择文本
V 可视行模式 选中光标经过的完整行
Ctrl + V 可视块模式 垂直方向选中文本

    可视模式下,可以和移动命令连用,例如 ggVG 能够选中所有内容

  9、撤销和回复撤销

    在学习编辑命令之前,先要知道怎样撤销之前一次 错误的 编辑动作    

命令 英文 功能
u undo 撤销上次命令
CTRL + r redo 恢复撤销的命令

  10、删除文本

命令 英文 功能
X cut 删除光标所在字符,或选中文字
d(移动命令) delete 删除移动命令对应的内容
dd delete 删除光标所在行,可以 ndd 删除多行
D delete 删除至行尾

    提示:如果使用可视模式已经选中一段文字,那么无论使用d还是x,都可以删除选中文本

    * 删除命令可以和移动命令连用,以下是常见的组合命令:

* dw                #从光标位置删除到单词末尾
* d0                #从光标位置删除到一行的起始位置 
* d}                #从光标位置删除到段落结尾
* ndd               #从光标位置向下连续删除n行
* d代码行G          #从光标指定行 删除到 指定代码行 之间的所有代码
* d'a               #从光标指定行 删除到 标记a 之间的所有代码
* 5x          #删除光标前面5个字
* dw          #往前删除一个单词
* db          #往后删除一个单词
d + 数字 + G,就可以把当前行,一直到数字所表示的行之间的所有内容删除,比如当前光标所在行为第4行,然后我想删除第4行到第8行,那么就可以在光标处在第4行的时候,按住d8G,就可以删除4、5、6、7、8行了!

  11、复制、粘贴

    vi 中提供有一个被复制文本的缓冲区

      复制命令会将选中的文字保存在缓冲区

      删除命令删除的文字会被保存在缓存区

      在需要的位置,使用粘贴命令可以将缓存区的文字插入到光标所在位置

命令 英文 功能
y(移动命令) copy 复制
yy copy 复制一行,可以nyy复制多行
p paste 粘贴

    提示:

    *  命令 d 、x 类似于图形界面的剪切操作-----ctrl + x
    *  命令 y  类似于图形界面的复制操作 --------ctrl + c
    *  命令 p  类似于图形界面的粘贴操作---------ctrl + v
    *  vi 中的文本缓冲区同样只有一个,如果后续做过复制、剪切、操作,之前缓存区中的内容会被替换。

    注意:

      vi 中的文本缓冲区和系统的剪切板不是同一个

      所以在其他软件中使用ctrl + c 复制的内容,不能再vi 中通过 p 命令粘贴

      可以在编辑模式下使用鼠标右键粘贴

  12 替换 

命令 英文 功能 工作模式
r replace 替换当前字符 命令模式
R replace 替换当前行光标后的字符 替换模式

 

    *  R命令可以进入替换模式,替换完成后,按下ESC可以回到命令模式
    *  替换模式的作用就是可以不用进入到编辑模式

  13、缩排和重复执行

命令 功能
>> 向右增加缩进
<< 向左减少缩进
. 重复上次命令

      * 缩进命令在开发程序时,统一增加代码缩进比较有用       * 一次性在选中代码前增加4个空格,就叫做增加缩进       * 一次性在选中代码前减少4个空格,就叫做减少缩进       * 在可视模式下,缩进命令只需要使用一个> 或者 <       在程序中,缩进通常用来表示代码的归属关系       * 前面空格越少,代码级别越高       * 前面空格越多,代码级别越低

  14、查找

    常规查找

命令 功能
/str 查找str

 

 

 

*   查找到指定内容后,使用Next查找下一个出现的位置
*      n:查找下一个
*      N:查找上一个

    单词快速匹配:

命令 功能
. 向后查找当前光标所在单词
# 向前查找当前光标所在单词

     *   在开发中,通过单词快速匹配,可以快速看到这个单词在其他什么位置使用过

   15、查找并替换

    在 vi 中查找和替换命令需要在末行模式下执行

    记忆命令格式:

   :%s///g

    1、全局替换

      *一次性替换文件中出现的所有出现的旧文本

      *命令格式如下:

        :%s/旧文本/新文本/g

    2、可视区域替换

      * 先选中要替换文字的范围       

        * 命令格式如下: 

      :s/旧文本/新文本/g

    3、确认替换

      * 如果把末尾的 g 改成gc 在替换的时候,会有提示。(推荐使用)

      :%s/旧文本/新文本/gc   (c 理解上confirm 确认的意思)
    1、y - yes 替换
    2、n - no 不替换
    3、a - all 替换所有
    4、q - quit 退出替换
    5、l - last 最后一个,并把光标移动到行首
    6、^E - 向下滚屏
    7、^Y - 向上滚屏

  16、插入命令

  在 vi 中除了常用的 i 进入编辑模式外,还提供了以下同样的命令进入到编辑模式:

命令 英文 功能 常用
i inster 在当前字符前插入文本 常用
I inster 在行首插入文本 较常用
a append 在当前字符后添加文本  
A append 在行末尾添加文本 较常用
o   在当前行后面插入一空行 常用
O   在当前行前面插入一空行 常用

  

 

 

 

 

   17、分屏命令

    * 属于 vi 高级命令 -- 可以同时编译和查看多个文件

    1、末行命令扩展

      末行命令主要是针对对文件进行操作的:保存、退出、保存&退出、搜索&替换、另存、新建、浏览文件……

命令 英文 功能
:e. edit 会打开内置文件浏览器,浏览当前目录下的文件
:n文件名 new 新建文件
:w文件名 write 另存为,但是仍然编辑当前文件,并不会切换文件

      提示:切换文件之前,必须保证当前文件已经被保存

  已经学习过的末行命令:

命令 英文 功能
:w write 保存
:q quit 退出,如果没有保存,不允许退出
:q! quit 强制退出,不保存退出
:wq write&quit 保存并退出
:x   保存并退出
:%s/旧文件/新文件/gc   确认搜索并替换

    2、分屏命令

      使用分屏命令,可以同时编辑和查看多个文件

命令 英文 功能
:sp[文件名] split 横向增加分屏
:vsp[文件名] vertical split 纵向增加分屏

       切换分屏窗口

分屏窗口都是基于 Ctrl + w 这个快捷键的,w 对应的英文单词是windon

命令 英文 功能
w windon 切换到下一个窗口
r reverse 互换窗口
c close 关闭当前窗口,但是不能关闭最后一个窗口
q quit 退出当前窗口,如果是最后一个窗口,则关闭 vi 
o other 关闭其他窗口
posted @ 2021-02-01 19:18  瑾琛  阅读(244)  评论(0)    收藏  举报