vim让编程小操作6到飞起

  vim是一款强大的编辑器,做过Linux c开发的同学应该非常熟悉,java相关的开发人员在Linux修改部署的配置文件等也是经常会使用到vim,本文将vim中常用操作进行整理,供大家参考使用.

进入vim

1.Linux命令行/git bash命令行等终端类工具可直接输入vi filename回车进入:
image.png

2.安装IdeaVim插件后的IDEA编辑区即进入vim操作区.

vim三种模式

输入模式(insert mode)
在输入模式下,用户可输入文本数据
- 在指令模式下,输入指令(`a、i、o、s`等)进入输入模式
指令模式(command mode)
在指令模式下,可进行删除、修改等各种编辑动作.
- 在输入模式&末行模式下,按esc键进入指令模式.
末行模式(Last Line Mode)
在末行模式主要进行一些文字编辑辅助功能,比如字串搜索、替代、保存文件等操作
- 在末行模式,按esc进入指令模式

指令模式下常用指令

进入输入模式

重要度 指令集 功能
*** a 在当前游标之后输入
* A 在当前行之末输入
*** i 在当前游标之前输入
* I 在当前行之首输入
*** o 在当前行之下新增一行,并在新增行输入
* O 在当前行之上新增一行,并在新增行输入
输入结束后,按Esc键退出输入模式

游标移动

重要度 指令集 功能
*** h 向左移动一个字元
*** l 向右移动一个字元
*** j 向下移动一个字元
*** k 向上移动一个字元
* b 左移一个单词,至词首
* w 右移一个单词,至词尾
* 0 移到当前行行首
* $ 移到当前行行尾
  + 移至下一行的行首
  - 移至下一行的行首
  H 移至视窗的第一行
  M 移至视窗的中间一行
  L 移至视窗的最后一行
  G 移至该文件的最后一行
  nG 移至该文档的第n行
  n+ 下移n行
  n- 上移n行
  gg 回到开头
  Shift+g 回到结尾

视窗移动

重要度 指令集 功能
*** Ctrl + f 视窗下卷一页
*** Ctrl + b 视窗上卷一页
  Ctrl + d 视窗下卷半页
  Ctrl + u 视窗上卷半页
* Ctrl + e 视窗下卷一行
* Ctrl + y 视窗上卷一行

删除操作

重要度 指令集 功能
*** x 删除游标所在字元
  X 删除游标前一字元
* dw 从游标当前位置开始向后删除一个单词
  db 从游标当前位置开始向前删除一个单词
* d0 从行首删除至当前游标位置
* d$ 从游标当前位置删除至行尾
*** dd 删除游标所在行
  D 同d$

修改操作

重要度 指令集 功能
*** s 修改游标所在字元,修改完成后按Esc键结束
  S 修改整行内容,修改完成后按Esc键结束
* r 替换当前游标所在字元
* R 进入替换状态,直至按Esc键结束
* cw 修改一个单词(从游标位置至词尾)
  cb 修改一个单词(从词首至游标位置)
* cc 修改整行内容,完成后按Esc键结束,同S
* c0 修改行首至游标位置的内容
* c$ 修改游标位置至行尾的内容
* ~ 游标所在字元大小写切换

指令重复

在指令模式中,可在指令前面加入一个数字n,则该指令会重复执行n次
重要度 指令集 功能
*** nx 删除n个字元
*** ndd 删除n行
*** ns 修改n个字元

取消/重复前一动作(Undo/Redo)

重要度 指令集 功能
*** u 撤消上一指令的结果
*** . 重复上一条指令

查找字符串

重要度 指令集 功能
*** /字符串 从当前游标向后查找该字符串
*** ?字符串 从当前游标向前查找该字符串
*** n 从当前游标向后查找下一个字符串
*** N 从当前游标向前查找下一个字符串

查看编辑情况

重要度 指令集 功能
*** Ctrl + g 显示正在编辑的文件名、当前游标所在行数、文件总行数、文件是否被修改

括号匹配

重要度 指令集 功能
*** % 定位到匹配的“(”、“)”、“{”、“}”

末行模式下常用操作

保存与退出

重要度 指令集 功能
*** :w 保存,但不退出
*** :wq 保存并退出
*** :x 同:wq
*** :q 退出,如果当前文件没有保存,禁止退出
*** :q! 不保存退出
*** :w file.txt 将内容保存至文件file.txt中,注意:此时编辑的仍为原文件
* w! file.txt 将内容强制保存至文件file.txt中,如文件file.txt存在:w file.txt将禁止执行

环境设置

重要度 指令集 功能
* :set 显示已设置的环境状况
* :set all 显示所有的环境设置选项
* :set nu 显示行号
* :set nonu 不显示行号
* :set ts=n 设置Tab键的长度为n

执行命令

以下用具体的数字为例进行介绍,数字表示行数,游标所在行可用“.”代替,文件最后一行可用“$”代替

重要度 指令集 功能
* :10,20d 删除第10行至第20行的内容
* :10d 删除第10行的内容
* :%d 删除全部内容
*** :10,20co30 将第10行至第20行的内容复制到第30行之后
* :10,20mo30 将第10行至第20行的内容移动到第30行之后
*** :1,$s/old/new 将第1行至最后一行中的old替换成new
*** :1,$s/^/new 将第1行至最后一行的内容前面插入new
* :10 将游标移至第10行

切换到shell状态

重要度 指令集 功能
*** :sh 切换到shell状态,shell命令行输入exit返回vim

另附一张vim跳转图供参考

vim.png

你可能感兴趣的:(vim)