跳转到内容

基本操作

  • 交换两个字符位置: xp
  • 上下两行调换: ddp
  • 把文件内容反转: :g/^/m0/
    • 解释: xpddp 应该理解为删除一个字符 (x) 和删除一行 (dd),然后再粘贴 (p),这样便不需记新命令了。
  • 按行反转文件内容:
    :g/^/m0/
    • 解释:
      m --> move
      0 --> line No 1
    • 试想,从第1行开始,每一行依次放在文件的开头处,会有什么结果?
  • 上下两行合并: J
  • 删除光标至文件尾所有行: dG
  • 从当前位置删除到行尾: d$
  • 从当前位置复制到行尾: y$
  • 粘贴到其他地方: p
  • 拷贝从光标行起的下 n 行内容: nyy
  • 单个字符替换: r
  • 覆盖多个字符: R
  • 用多个字符替换一个字符: s
  • 整行替换: S
  • 往右移动到 x 字符上: fx
  • 往左移动到 x 字符上: Fx
  • 往右移动到 x 字符前: tx
  • 往左移动到 x 字符后: Tx
  • 文件加密: :X
    • 解释: 对文件进行加密,有密码保护。加密后的脚本不能被解释执行!
    • 取消密码: :set key= 然后直接输入 Enter 并保存文件。
  • **在行的首尾分别加上 == 和 **: :s/^.*$/==>&<==/
    • 解释: . 重复上一次修改!
  • 为文本搬入行号: :g/^/ s//\=line('.').' '/
  • 为文本末尾搬入行号*10: :g/$/ s//\=','.line('.')*10/
  • 删除当前文件中所有包含 test 的行: :g/test/d
  • 删除当前文件中所有不包含 test 的行: :v/test/d
  • 统计匹配次数: %s/replace_with_your_keywords//gn

典型的操作: 0 <C-v> <C-d> I--

  • ^ 到行头
  • <C-v> 开始块操作
  • <C-d> 向下移动 (你也可以使用 hjkl 来移动光标,或是使用 %,或是别的)
  • I-- 插入“—”,按 ESC 键来为每一行生效。
    • 在 Windows 下的 vim,你需要使用 <C-q> 而不是 <C-v><C-v> 是拷贝剪贴板。

在 Insert 模式下,你可以输入一个词的开头,然后按 <C-p><C-n>,自动补齐功能就出现了。

  1. J 把所有的行连接起来(变成一行)
  2. <> 左右缩进
  3. = 自动给缩进
  4. gg=G 全部格式化缩进
  5. 在 visual 模式下,选中要查字数的片段后,按 g 再按 Ctrl+g,然后在下面就会显示有多少个字节,有多少个字。