许多初学者可能会对Vim的使用感到困惑,因为它并不像普通的文本编辑器,一打开就能编辑。
首先,它一共有6种模式,分别是普通模式(Normal mode)、插入模式(Insert mode)、可视模式(Visual mode)、选择模式(Select mode)、命令行模式(Command line mode)和Ex模式(Ex mode)。
对于我来说,最常使用的是普通模式、插入模式、可视模式和命令行模式。
普通模式、可视模式、命令行模式都差不多,我们输入的字符都会被当做指令使用,可以执行复制、粘贴、删除等命令;而在插入模式中,使用的方式则与普通的文本编辑器差不多。
Vim模式切换
Vim启动时默认进入普通模式,在普通模式按 i键 或者 a键进入插入模式;按 :键 进行命令行模式;按 v键 进入可视化模式。
在插入模式、命令行模式、可视化模式中,通过按 Esc键 回到普通模式。
Vim的保存与退出
:w 保存文本但不退出
:q 退出文本,但你对文本做了改动,是无法退出的,需要使用 :q! 指令
:q! 丢弃所做的修改并退出文本
:wq 保存并退出文本
Vim跳转
^键: 跳到行首
$键: 跳到行尾
w键: 下一个单词(词首)
e键: 下一个单词(词尾)
b键: 前一个单词
gg键(按两下g键):跳转到第一行
G键(大写):跳转到最后一行
k键: 上
h键: 下
g键: 左
l键: 右
:行数: 跳转到指定行数,比如 :100 跳转到第100行 (也可以通过这种方式跳转到第一行)
Vim显示
:set nu 显示行号
:set nonu 不显示行号
:syntax enable 语法高亮
Vim复制粘贴(提供多种方法)
复制当前行:
- 选中文本,按 y键
- 选中文本,Ctrl + C
复制多行:
- 选中文本,按yy键
- 选中文本,Ctrl + C
粘贴:
- Ctrl + V(虽然有p键,但猜测大部分用Ctrl + V居多)
删除当前行:
- 光标停留在想要删除的行,按dd键
- 按住删除键,一个个删
删除多行:如果是删除单行,一个个删还能接受,但要删除多行就比较浪费时间了,可以通过下面的办法快速删除
1.第一步,:set nu 显示行数
2.第二步,:start, end d删除,比如 :1, 100d的意思就是删除第一行到第100行的所有内容
撤销:
- 按u键(undo)
恢复撤销:
- Ctrl + r键
选中字符进行复制/粘贴: blog.csdn.net/clearhlj/ar…
Vim注释
多行注释
- 1.按 esc键 进入命令行模式下,按下Ctrl + v,进入 Visual Block 模式
- 2.按 j键, 或者k键选中多行,把需要注释的行标记起来
- 3.按下键盘 "I"键(大写),进入 insert 模式, 插入注释符(比如“//”、“#”)
- 4.按下“Esc”键
注:在按下Esc键后,会稍等一会才会出现注释。
取消多行注释
- 1.进入命令行模式,按Ctrl + v进入 Visual Block 模式,按字母 l 横向选中需要取消删除的符号(例如 //注释符 需要横向选中2列)
- 2.按j键,或者k键选中需要取消注释的行
- 3.按d键就可全部取消注释
Vim搜索
在Vim中,搜索也是非常常见的操作。
假设我们打开了一个文本,想要从最前面往最后面搜索一个单词 "error",则可以这样操作:
- 1.使用 gg 命令跳转到第一行
- 2.在普通模式下输入 "/error",如果有搜索到这个单词,则光标会停留在这个单词上;如果没有这个单词,则直接提示找不到
- 3.如果想继续搜索下一个"error",则按下Enter键,表示选中,然后按 n键 可跳转到下一个error单词,按 N键 可跳转到前一个 error 单词
假设我们不要从最前面开始搜索,而是要从最后面往前面搜,则可以这样操作:
- 1.按下 G键 跳转到最后一行
- 2.在普通模式下输入 "?error",如果有搜索到这个单词,则光标会停留在这个单词上;如果没有这个单词,则直接提示找不到
- 3.因为这时候的error是最后一个,所以这时候按 n键 其实是跳转到前一个error,按 N键 才是跳转到后一个error
Vim替换
一、添加
在每行行首添加相同的内容:
:%s/^/要添加的内容
在每行行尾添加相同的内容:
:%s/$/要添加的内容
二、利用正则表达式删除代码段每行的行号
:%s/^\s*[0-9]\s//gc
其中,^表示行首,$表示行尾,\s表示空格,[0-9]表示0~9的数字,表示0或多个,%s/^\s[0-9]\s//gc的意思是将每行以0或多个空格开始中间包含0或多个数字并以0或多个空格结束的字符串替换为空。
原文链接:harttle.land/2016/08/08/…
Vim加解密文件
加密文件
1.打开文本,进入到普通模式
2.按Esc键,输入 :X 命令并回车
3.这时系统会让你输入密码,需要输入2次
4.保存后退出,这时这个文本已经被加密了,用其它文本编辑器打开会发现是乱码
注:每次打开的时候,都需要输入密码解密
解密文件
1.用Vim打开文本,这时Vim会提示你输入密码,输入密码显示文本
2.在普通模式下,输入 "set key=",回车并保存,这时文件已解密(或者输入 ":X",然后给一个空密码)
原文链接:blog.csdn.net/hnlyyk/arti…
Vim不支持utf-8
Vim删除每行前/后 n 个字符
1.删除每行前10个字符: :%s/^.{10}//
2.删除每行后10个字符: :%s/.{10}$//
%表示所有行,s表示替换,"%s"可用"1,$"代替(下同);正则表达式"/^.{10}//"中,^表示行首;"."表示要删除的字符个数,".{10}"表示删除10个字符,可用10个"."表示