Vim使用小记

618 阅读1分钟

许多初学者可能会对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

blog.csdn.net/TH_NUM/arti…

Vim删除每行前/后 n 个字符

1.删除每行前10个字符: :%s/^.{10}//

2.删除每行后10个字符: :%s/.{10}$//

%表示所有行,s表示替换,"%s"可用"1,$"代替(下同);正则表达式"/^.{10}//"中,^表示行首;"."表示要删除的字符个数,".{10}"表示删除10个字符,可用10个"."表示