Vim 常用规则和命令

可以多参考 vim/gvim 有哪些实用技巧?vim cheatsheets

【vim 状态切换】

  • Esc = Ctrl + [ # 切换到普通模式

【vim 移动】(来自 Vimtutor)

  • h j k l 方向键
  • CTRL + F/B 上一页/下一页
  • CTRL + U/D 上移/下移半屏
  • shift-6 (^) 移动到行首第一个非空字符
  • 数字 0 移动到本行开头
  • shift-4 ($) 移动到行尾
  • W (shift-W) (向右)移动到下一个单词
  • B (shift-B) (像左)移动到上一个单词
  • gg 跳到页面文件开头
  • G 跳到文件末尾

【Vim 操纵文本】

  • r 替换 (R 进入替换模式,此时只有键盘有用,直到 Esc 退出)
  • c 改写
  • x 删除(实际是剪切)。 x 在删去的同时,会覆盖掉剪切板的内容,例如:先用 yy 复制了一部分内容,然后切换到粘贴的地方,用 x 删去不要的内容,再用 p 粘贴,会导致先前复制内容丢失
  • yy 复制一行
  • yw, yW, yiw, yiW 复制一部分
  • dd 剪切一行
  • dw, dW, diw, diW
  • dG 删除当前行及后面所有行 (或者使用命令行模式 : , $ d
  • dgg 删除当前行及前面所有行 (或者使用命令行模式 : 1, d
  • p 粘贴
  • u 撤销上一次操作
  • ctrl + r 重做上次操作
  • 合并上下两行: shift + j (在上行使用, 等价于 大 J )
  • 合并 10-20 行::10,20 j 参考

【vim visual 可视模式】https://www.cnblogs.com/hangaozu/p/7544325.html

  • 在 visual(v) 模式下, 可以使用光标选中部分字符,然后进行复制(y), 粘贴(p), 但复制的内容似乎仅仅是一次性的,只能粘贴一次。
  • 使用 ctrl + v 可以打开 block 块选中可视模式,便于更多的操作,例如可以进行多行注释。

【vim 搜索文本功能】:https://www.jianshu.com/p/bdc1f7e689b3

  • / 开启搜索
  • . 其中 代表转义符。在搜索 query 中,避免 . 被转义为匹配符,可以使用 .,其中 是转义字符,例如搜索: 85.5
  • n or N 向上 or 向下搜索
  • :set hlsearch 语法高亮 highlight search 结果 (也可以在 ~/.vimrc 里面写一行 set hlsearch, 不需要 :)

【vim 文本替换功能】:(来自 《Linux命令行大全》chapter 12)

  • :%s/aaa/bbb/g 将 aaa 替换为 bbb
  • s 代表替换功能
  • % 代表全部行, 也可以使用起始行号和结束行号来圈定范围,1,5s/aaa/bbb/g
  • g 代表 global, gc 则会在每次替换前询问用户确认

【vim 普通模式下】:(https://blog.csdn.net/HappyCodeFly/article/details/86684297)

  • q / 查看使用/输入的搜索历史
  • q ? 查看使用?输入的搜索历史
  • q : 查看命令行历史 (常常会被误按,按一下回车键即可回复原状)

【shell 脚本中出现了 windows 的换行符导致出错】https://www.cnblogs.com/ericfengk/p/11972497.html

  • 例如:(run.sh 通过 腾讯文档 粘贴转过来的)

  • 使用 vim -b file.sh 会显示每一行后面多了一个 ^M

  • 使用 blog 中解决方法办法修复:

    方式一:dos2unix
    下载并安装dos2unix
    利用命令“dos2unix [filename]”完成转换
    
    方式二:替换(vim+正则表达式)
    利用命令“vim -b [filename]”打开该文件
    在命令模式下输入:“%s/^M//g”或者“g/^M/s/^M//” 保存并退出
    也可以自己直接逐个手动删去符号 ^M。
    

【vim 多行注释功能】https://blog.csdn.net/step_ma/article/details/76474864
在使用 vim 编辑器时,有时候需要对多行代码进行加注释或去注释,它不像我们在类似于 vs code 等下可以使用快捷键操作,而需要我们自己输入命令操作,下面将介绍两种方法。

  • 方法一:块选择模式
  1. 插入注释
    (1)首先按键盘上的 ESC 进入命令行模式
    (2)再按 Ctrl+V 进入 VISUAL BLOCK 模式
    (3)利用上下左右键调整需要注释多少行以及行的宽度
    (4)再按 Shift+i(大写的 I) 或 s 进入插入模式
    (5)输入代表注释的符号,比如 #
    (6)再次按 ESC 键,这时就可完成多行注释(可能需要等上一会,不要着急)

  2. 去注释
    前三步与加注释相同。
    (1)首先按键盘上的 ESC 进入命令行模式
    (2)再按 Ctrl+V 进入 VISUAL BLOCK 模式
    (3)利用上下左右键调整需要去注释多少行以及行的宽度
    (4)再按 d 删去注释字符,即可完成去注释

  • 方法二:替换命令
  1. 插入注释
    (1)首先按键盘上的 ESC 进入命令行模式
    (2)再在底行输入以下命令
    :起始行号,结束行号s/^/注释符/g
    底行显示的是一共有几行插入了注释

  2. 去注释
    (1)首先按键盘上的 ESC 进入命令行模式
    (2)再在底行输入以下命令
    :起始行号, 结束行号s/^注释符//g
    去除注释之后底行显示的是共去除了几行注释

原文地址:https://www.cnblogs.com/Gelthin2017/p/12853619.html