vim 编辑器

所有的 Linux 系统都会内建 vi 文本编辑器;Vim 具有程序编辑的能力, 可以看做是 Vi 的增强版本, 可以主动的以字体颜色辨别语法的正确性, 方便程序设计。 代码补完、 编译及错误跳转等方便编程的功能特别丰富, 在程序员中被广泛使用.首先在ubuntu中需要用 sudo apt-get install vim 命令来安装vim,然后通过 vim 文本名 的命令来创建或编辑文本。

 

vim 的三种常见模式
 

(1)正常模式

在正常模式下, 我们可以使用快捷键

以 vim 打开一个文档就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』 按键来移动光标, 你可以使用『删除字符』 或『删除整行』 来处理档案内容, 也可以使用『复制、 贴上』 来处理你的文件数据.

(2)编辑模式

在模式下, 程序员可以输入内容
按下 i, I, o, O, a, A, r, R 等任何一个字母之后才会进入编辑模式, 一般来说按 i 即可
(3)命令行模式

在这个模式当中, 可以提供你相关指令, 完成读取、 存盘、 替换、 离开 vim 、 显示行号等的动作则是在此模式中达成的!


三种模式的相互转换图

 

 常用的快捷键实例

(1)在正常模式下拷贝当前行   yy , 拷贝当前行向下的 5 行    5yy, 并粘贴(p);

(2)在正常模式下删除当前行  dd , 删除当前行向下的 5 行   5dd  

(3)在文件中查找某个单词    命令行下输入  /关键字 , 回车 查找 , 输入 n 就是查找下一个  ;如查找hello,就需要输入 /hello

(4)定位文件的首行和尾行   在正常模式下输入命令  gg 到达首行,输入命令  达到尾行 ;

(5)撤销之前的编辑  先从编辑模式转入到一般模式,然后输入命令 u

(6)设置文件的行号  在命令行模式下输入 :set nu 可以为当前文件显示行号,输入 :set nonu 撤销显示行号;

(7)定位文件的某一行  如将光标定位到第20行:

  • 第一步: 显示行号 :set nu
  • 第二步: 输入 20 这个数
  • 第三步: 输入 shift+g

注意,在正常模式下,输入 /或: 都会进入命令行模式,所以上面在命令行模式下的操作命令都包含这两个操作符中的一个

(7) 打开文件并定位到指定的行

在打开文件的命令后添加一个加号 + 直接将光标定位到最后一行;

对于要定位到其中的某一行,只需要在加号后面添加对应的行数:

(8)异常处理

如果vim异常退出,例如在编辑文档时突然关闭终端,此时在磁盘上可能会存在 交换文件, 它是隐藏文件(以 . 开头的文件)

此时再打开之前的文件,会看到以下屏幕信息,按下字母d删除交换文件就可以重新编辑了 ,或者按r可以恢复未保存的文件

进入文件后可以看到之前为保存的部分也已经删除了; 

命令路线图

1.重复次数

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

2.移动和选择(多练习)

vim 之所以快,关键在于能够快速定位到指定的代码行

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

3. 编辑操作

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

4. 撤销和重复

5. 查找和替换 

1.1 移动 

1)上、下、左、右

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

2)行内移动

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

3)行数移动(整个文件跳转)

命令英文功能
gggo文件顶部
Ggo文件尾部
数字gggo移动到数字对应行数
数字Ggo移动到数字对应行数
:数字 移动到数字对应行数

4)屏幕移动

命令英文功能
ctrl+bgo向上翻页
ctrl+fgo向下翻页
HHead屏幕顶部
MMiddle屏幕中间
LLow屏幕底部

1.2 移动(程序)

1)段落移动

  • vim 中使用 空行 来区分段落
  • 在程序开发时,通常 一段功能相关的代码 会写在一起 --之间没有空行
命令功能
{上一段
}下一段

2)括号切换

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

命令功能
%切换括号,如从左括号切换到右括号

3)标记

  • 在开发时,某一处代码需要稍后处理,例如:编辑、查看
  • 此时先用 m 增加一个标记,这样可以 在需要时快速跳转回当前位置 或者执行其他编辑操作
  • 标记名称 可以是 a~z 或 A~Z 之间的任意一个字母
  • 添加了标记的行如果被删除,标记同时被删除
  • 如果 在其他行添加了相同的标记,之前添加的标记会被替换掉
命令英文功能
mxmark添加标记x,x可以是a~z或者A~Z之间的任意一个字母
'x 直接定位到x所在位置

1.3 选中文本(可视模式)

  • 学习 复制 命令之前需要学会 怎么样选中要复制的代码
  • 在 vim 中要选择文本,需要先使用 visual 命令切换到 可视模式
  • vim 提供了三种可视模式,可以方便程序员选择 选中文本的方式
  • ESC 可以退出可视模式,回到一般模式
命令模式功能
v可视模式从光标位置开始按照正常模式选中文本
V可视行模式选中光标经过的完整行
ctrl+v可视块模式垂直方向选中文本
  • 在可视模式下,可以和 移动命令 连用,例如ggVG 能够选中所有内容

1.4 撤销和恢复撤销

  • 在学习编辑命令之前,先要知道如何撤销之前一次 错误的编辑动作
命令英文功能
uundo撤销上一条命令
ctrl+rredo恢复撤销的命令

1.5 删除文本

 

命令英文功能
xcut删除光标所在的字符,或者经可视模式选中的文本
d+移动命令delete删除光标到移动命令对应的内容
dddelete删除光标所在的行,ndd可以删除多行
Ddelete删除至行尾

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

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

  • dw    从光标位置删除到单词末尾
  • d0     从光标位置删除到该行的起始位置
  • d}      从光标位置删除到段落结尾
  • ndd   从光标位置向下连续删除n行
  • d代码行G  从光标位置所在的行 删除到 指定的代码行 之间所有的代码
  • d'a    从光标位置所在的行 删除到 标记a所在的行 之间所有的代码

1.6 复制和粘贴

vim 提供了一个复制文本的缓冲区

  • 复制  命令会将选中的文本保存在缓冲区
  • 删除  命令删除的文本会被保留在缓冲区
  • 在需要的位置,使用粘贴命令可以将缓冲区的文本插入到光标所在位置
命令英文功能
y+移动命令copy复制
yycopy复制光标所在的行,nyy可以复制多行
ppaste粘贴,np可以复制多遍

 提示

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

注意

  • vim 中的 文本缓冲区 和系统的 剪切板 不是同一个
  • 在其他软件中使用 ctrl + c 复制的内容,不能在 vim 中通过 p 命令 粘贴,但是可以在 编辑模式下 使用 鼠标右键粘贴

 1.7 替换

命令英文功能工作模式
rreplace替换当前字符一般模式
Rreplace替换当前光标后的字符替换模式
  • R 命令进入替换模式 ,替换完成后,按 ESC 回到一般模式
  • 替换命令 的作用就是不进入 编辑模式,对文件进行轻量级修改

 1.8 缩排和重复执行

命令功能
>>光标所在的行向右增加缩进
<<光标所在的行向左减少缩进
.重复上次命令
  • 缩排命令  在开发程序时,统一增加代码的缩进,比较有用!
  1. 一次性  在选中的代码前增加4个空格,就叫做增加缩进
  2. 一次性  在选中的代码前删除4个空格,就叫做减少缩进
  • 在 可视模式  下,缩排命令只需要使用 一个 > 或者 <

在程序中,缩进常用来表示代码的归属关系

  • 前面的空格越少,代码的级别越高
  • 前面的空格越多,代码的级别越低

 1.9 查找

常规查找

命令功能
/str查找str

 查找到指定内容后,使用 next 查找下一个出现的位置:

  • n : 查找下一个
  • N :查找上一个

查找到的内容会高亮显示,如果不想看到高亮,可以再查找一个文档中不存在的内容即可

单词快速匹配

首先将光标定位到一个单词,然后:

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

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

 1.10 查找与替换

在vim 中查找和替换命令需要在 命令模式 进行

记忆命令格式:

:%s///g

1)全局替换

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

命令格式如下:

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

2)可视区域替换

先选中 要替换文本 的范围

命令格式如下:

V 先进入 可视行 模式,选中要替换的文本范围,然后输入:
s/旧文本/新文本/g

3)确认替换

把上面替换命令末尾的 g 改为 gc,在输入命令后会有提示,推荐使用!

:%s/旧文本/新文本/gc
  • 1、y -yes 替换
  • 2、n -no不替换
  • 3、a -all 替换所有
  • 4、q -quit 退出替换

 1.11 插入命令

命令英文功能常用
iinsert在当前字符前插入文本常用
Iinsert在行首插入文本较常用
aappend在当前字符后添加文本 
Aappend在行末添加文本较常用
o 在当前行后插入一空行常用
O 在当前行前插入一空行常用

vim的配置文件

用户级别

目录:~/.vimrc

 系统级别

目录:/etc/vim/vimrc

  • 10
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值