值此五四运动100周年之际,写篇文章纪念一下。

“要把所有的夜归还给星河,把所有的春光归还给疏疏篱落,把所有的慵慵沉迷与不前,归还给过去的我。明日之我,胸中有丘壑,立马振山河。”

Vim简单入门_缩进


Vim简单入门_命令行_02


看了这两张图,千万别被劝退,我们平时用不了这么多命令,作为日常使用,我觉得掌握以下三点就足够了:

  1. 三种模式之间的切换
  2. 熟练使用复制粘贴指令
  3. 熟练保存和退出
    就这些啦,很简单!

I 普通模式

1.1 游标移动

按键

说明

h


j


k


l


w

移动到下一个单词

b

移动到上一个单词

1.2 游标行间跳转

命令

说明

​nG​​(n Shift+g)

游标移动到第 n 行(如果默认没有显示行号,请先进入命令模式,输入:set nu以显示行号)

​gg​

游标移动到到第一行

​G​​(Shift+g)

到最后一行

小技巧:你在完成依次跳转后,可以使用 Ctrl+o 快速回到上一次(跳转前)光标所在位置,这个技巧很实用,比如当你在写代码时,忽然想起有个 bug,需要修改,这时候你跳过去改好了,只需要按下 ​​Ctrl+o​​ 就可以回到你之前的位置。

1.3 行内跳转

命令

说明

​w​

到下一个单词的开头

​e​

到当前单词的结尾

​b​

到前一个单词的开头

​ge​

到前一个单词的结尾

​0​​​或​​^​

到行头

​$​

到行尾

​f<字母>​

向后搜索<字母>并跳转到第一个匹配的位置(非常实用)

​F<字母>​

向前搜索<字母>并跳转到第一个匹配的位置

1.4 删除vim文本信息

命令

说明

x

删除游标所在的字符

X

删除游标所在的前一个字符

delete

same as x

dd

删除整行

dw

删除一个单词(不适合中文)

D or d$

删除至行尾

d^

删除至行首

dG

删除至文档结尾处

d1G

删至文档首部

  • ​2dd 表示一个删除2行​
  • ​在普通模式下.(小数点)表示重复上一次的命令操作​
  • 在普通模式下,你还可以使用​​dw​​​或者daw(delete a word)删除一个单词,所以你可以很容易的联想到​​dnw​​(n替换为相应数字) 表示删除n个单词
  • ​~​​ 将游标所在字母变成大写或小写

1.5 复制粘贴和剪切

  • 普通模式中使用​​y​​复制
  • 普通模式中,​​yy​​​复制游标所在的整行(​​3yy​​表示复制3行)
  • 普通模式中,​​y^​​​ 复制至行首,或​​y0​​。不含光标所在处字符。
  • 普通模式中,​​y$​​ 复制至行尾。含光标所在处字符。
  • 普通模式中,​​yw​​ 复制一个单词。
  • 普通模式中,​​y2w​​ 复制两个单词。
  • 普通模式中,​​yG​​ 复制至文本末。
  • 普通模式中,​​y1G​​ 复制至文本开头。
  • 普通模式中使用 ​​p​​ 粘贴
  • 普通模式中,​​p​​(小写)代表粘贴至光标后(下)
  • 普通模式中,​​P​​(大写)代表粘贴至光标前(上)

其实前面讲得 ​​dd​​​ 删除命令就是剪切,你每次 ​​dd​​​ 删除文档内容后,便可以使用 ​​p​​ 来粘贴,也这一点可以让我们实现一个很爽快的功能——交换上下行:

​ddp​​ ,就这么简单,即实现了快速交换光标所在行与它下面的行

1.6 快速查找

  • 普通模式下输入​​/icmp​​​然后回车即可查找字符串 ​​icmp​
  • 普通模式下输入​​n​​​查找下一个 ​​icmp​
  • 普通模式下输入​​?tcp​​​向上查找字符串 ​​tcp​
  • 普通模式下输入​​N​​​查找上一个出现的 ​​tcp​
  • 命令行模式下输入 ​​noh​​ 然后回车即可取消搜索

1.7 高级查找

  • 普通模式下输入​​\*​​寻找游标所在处的单词
  • 普通模式下输入​​\#​​​同上,但 ​​\#​​​ 是向前(上)找,​​\*​​则是向后(下)找
  • 普通模式下输入​​g\*​​​同​​\*​​ ,但部分符合该单词即可
  • 普通模式下输入​​g\#​​​同​​\#​​ ,但部分符合该单词即可

以上查找​​n​​​,​​N​​ 的继续查找命令依然可以用

1.8 缩进

  • 普通模式下输入​​>>​​ 整行将向右缩进(使用,用于格式化代码超爽)
  • 普通模式下输入​​<<​​ 整行向左回退
  • 普通模式下输入​​:​​​进入命令行模式下对​​shiftwidth​​值进行设置可以控制缩进和回退的字符数

shiftwidth命令

:set shiftwidth=10

1.9 替换

  • 替换和Undo命令都是针对普通模式下的操作

命令

说明

​r​​+<待替换字母>

将游标所在字母替换为指定字母

​R​

连续替换,直到按下​​Esc​

​cc​

替换整行,即删除游标所在行,并进入插入模式

​cw​

替换一个单词,即删除一个单词,并进入插入模式

​C​​(大写)

替换游标以后至行末

​~​

反转游标所在字母大小写

​u​​{n}

撤销一次或n次操作

​U​​(大写)

撤销当前行的所有修改

​Ctrl+r​

redo,即撤销undo的操作

II 插入模式

命令

说明

i

在当前光标处进行编辑

I

在行首插入

A

在行末插入

a

在光标后插入编辑

O

在当前行后插入一个新行

o

在当前行前插入一个新行

cw

替换从光标所在位置后到一个单词结尾的字符

III 命令行模式

3.1 退出

命令

说明

:q!

强制退出,不保存

:q

退出

:wq!

强制保存并退出

:w <文件路径>

另存为

:saveas 文件路径

另存为

:x

保存并退出

:wq

保存并退出

普通模式下输入​​Shift+zz​​即可保存退出vim

3.2 调整文本位置

  • : ce == center
  • : ri == right
  • : le == left