Vim 常用命令和快捷键

VIM 常用命令和快捷键

常用快捷键

块选

  • 鼠标先选择要选的块状区域
  • 之后按ctrl + v

Nerdtree目录管理常用操作

在NERDTree操作区的一些基本操作:

?: 快速帮助文档
o: 打开一个目录或者打开文件,创建的是buffer,也可以用来打开书签
go: 打开一个文件,但是光标仍然留在NERDTree,创建的是buffer
t: 打开一个文件,创建的是Tab,对书签同样生效
g+t:在Tab之间切换
T: 打开一个文件,但是光标仍然留在NERDTree,创建的是Tab,对书签同样生效
i: 水平分割创建文件的窗口,创建的是buffer
gi: 水平分割创建文件的窗口,但是光标仍然留在NERDTree
s: 垂直分割创建文件的窗口,创建的是buffer
gs: 和gi,go类似
x: 收起当前打开的目录
X: 收起所有打开的目录
e: 以文件管理的方式打开选中的目录
D: 删除书签
P: 大写,跳转到当前根路径
p: 小写,跳转到光标所在的上一级路径
K: 跳转到第一个子路径
J: 跳转到最后一个子路径
: 在同级目录和文件间移动,忽略子目录和子文件
C: 将根路径设置为光标所在的目录
u: 设置上级目录为根路径
U: 设置上级目录为跟路径,但是维持原来目录打开的状态
r: 刷新光标所在的目录
R: 刷新当前根路径
I: 显示或者不显示隐藏文件
f: 打开和关闭文件过滤器
q: 关闭NERDTree
A: 全屏显示NERDTree,或者关闭全屏

缩进和取消缩进

  • esc进入normal模式
  • 选中需要缩进或取消缩进的代码
  • 按shift + < 取消缩进
  • 按shift + > 整体缩进

全选

  • 全选(高亮显示):按esc后,然后ggvG或者ggVG
  • 全部复制:按esc后,然后ggyG
  • 全部删除:按esc后,然后dG

解析:
gg:是让光标移到首行,在vim才有效,vi中无效
v : 是进入Visual(可视)模式
G :光标移到最后一行

选中内容以后就可以其他的操作了,比如:
d 删除选中内容
y 复制选中内容到0号寄存器
"+y 复制选中内容到+寄存器,也就是系统的剪贴板,供其他程序用

复制粘贴

  • y键复制选择文本
  • p键粘贴

文件跳转

  • 光标移到文件路径处 按g键+f键 实现跳转到文件内部
  • ctrl + o 从文件内部跳回上一级

常用命令

替换

替换命令的完整形式:[range]s/from/to/[flags] 把from指定的字符串替换成to指定的字符串,from可以是正则表达式。

  • [range]有以下一些表示方法:

  • | range | 行为 |
    | ----- | :---------------------------------: |
    | 不写 | 默认为光标所在的行 |
    | . | 光标所在的行 |
    | 1 | 第一行 |
    | $ | 最后一行 |
    | 33 | 第33行 |
    | 'a | 标记a所在的行(之前要用ma做过标记) |
    | .+1 | 当前光标所在行的下面一行 |
    | $-1 | 倒数第二行 |
    | 22,33 | 第22~33行 |
    | 1,$ | 第1行到最后一行 |
    | 1,. | 第1行到当前行 |
    | .,$ | 当前行到最后一行 |
    | 'a,'b | 标记a所在的行 到标记b所在的行 |
    | % | 所有行(与 1,$ 等价 |
    | ?chapter? | 从当前位置向上搜索,第一个chapter所在的行 |
    | /chapter/ | 从当前位置向下搜索 |

注意,上面的所有用于range的表示方法都可以通过 +、- 操作来设置相对偏 移量。

  • [flags]

    • 无 : 只对指定范围内的第一个匹配项进行替换。
    • g : 对指定范围内的所有匹配项进行替换。
    • c : 在替换前请求用户确认。
    • e : 忽略执行过程中的错误。

    注意:上面的所有flags都可以组合起来使用,比如 gc 表示对指定范围内的所有匹配项进行替换,并且在每一次替换之前都会请用户确认。

原文地址:https://www.cnblogs.com/lyc-seu/p/12364145.html