Pycharm中使用Vim Emulator命令合集

Pycharm中使用Vim Emulator命令合集在用 Vim 快捷键但是不太上手 看到一份很好的整理 Vim 命令合集校正了部分笔误并测试后整理如下 挂在网上方便查阅 原文没有版权申明 如果搬运不当 我表示歉意并将马上删除 模式切换 Esc 正常模式 i 插入模式 除了键入字符 其他命令都需要在正常模式下才能运行 v 可视模式 字符选择 会将光标经过的地方反白选择 V 行选择 会将光标经过的行反白选择命令历史以 和 开头的命令都有历史记录 可以键入 或 然后按上下键来获得导航命令 括号匹配插入命令 i 在当前位置前插入 正常


模式切换

Esc 正常模式

i 插入模式

(除了键入字符,其他命令都需要在正常模式下才能运行)

v 可视模式, 字符选择,会将光标经过的地方反白选择

V 行选择, 会将光标经过的行反白选择


命令历史

:/开头的命令都有历史记录,可以键入:/然后按上下键来获得


导航命令

% 括号匹配


插入命令

i 在当前位置前插入(正常模式下选中的范围前)

I 在当前行的行首插入

a 在当前位置后插入(正常模式下选中的范围后)

A 在当前行的行尾插入

o 在当前行后插入新的一行

OShift+o 在当前行前插入新的一行


查找命令

/text 查找text,回车后出现查找结果,按n键跳转下一个,按N键跳转上一个

?text 查找text,回车后出现查找结果,反向查找,按n键跳转上一个,按N键跳转下一个

:set ignorecase 忽略大小写

:set noignorecase 不忽略大小写

:set hlsearch 高亮显示全部搜索结果

:set nohlsearch 关闭高亮搜索显示

:nohlsearch 关闭当前的高亮搜索显示,但如果再次搜索或按下n/N键,会再次高亮

:set incsearch 逐步搜索模式,对每次输入的结果立刻进行搜索

:set wrapscan 重新搜索


替换命令

r 切换到替换模式,继续输入即可替换当前字符

:s/old/new/ 用new替换当前行中第一个匹配的old

:s/old/new/g 用new替换当前行中所有匹配的old

:%s/old/new/ 用new替换所有行中第一个匹配的old

:%s/old/new/g 用new替换所有行中所有匹配的old

:r1,r2, s/old/new/ 对于r1-r2行进行替换(其他类似)

例子::10,20, s/^/ /g 在10-20行每行前加两个tab空格缩进

ddp 交换光标所在行和其下紧邻的下一行(剪切粘贴原理)

xp 交换当前字符和其后一个字符


移动命令

h 左移一个字符

l 右移一个字符

k 上移一行

j 下移一行

(可以在前面加上数字使用,比如10j就是下移10行)

w 右移一个符号/字符串,光标停在单词词首

b 左移一个符号/字符串,光标停在单词词首

e 右移一个符号/字符串,但光标停在单词词尾

ge 左移一个符号/字符串,但光标停在单词词尾

^ 移动到当前行第一个非空白字符

0home 移动到当前行行首

$ 移动到当前行行尾

3$ 移动到下面3行的行尾

gg 移动到文件头

G 移动到文件尾

fx 将移动到光标后第一个x的位置 3fx将移动到第三个x的位置

Fx 反向查找,移动到光标前第一个x的位置

:r1r1+G 跳到第r1行第一个非空白字符处

Ctrl+e 向下滚动一行

Ctrl+y 向上滚动一行

Ctrl+d 向下滚动半屏

Ctrl+u 向上滚动半屏

Ctrl+f 向下滚动一屏

Ctrl+b 向上滚动 一屏


撤销命令

u 撤销(undo)

Ctrl+r 重做(redo)


删除命令

xdl 删除当前字符

3x 删除当前光标开始向后三个字符

Xdh 删除当前字符的前一个字符

dd 删除当前行

dj 删除当前行以及上一行

dk 删除当前行以及下一行

Dd$ 删除当前字符至行尾

kdgg 删除当前行之前的所有行

jdG 删除当前行之后的所有行

:r1, r2d 删除r1到r2行

:r1, $d 删除r1到最后一行

Jshift+j 删除两行间的空行


拷贝粘贴剪切命令

yy 拷贝当前行

p 在当前光标后粘贴,如果之前用了yy复制,那么在当前行的下一行粘贴

nyy 拷贝当前行到下n-1行,即包括当前行一共复制n行

Shift+p 在当前行之前粘贴

:r1, r2 co r3 将r1-r2行内容复制后粘贴到r3的下一行

:1, $ co \$ 将整个文件内容复制后粘贴到文件尾部

ddp 交换当前行和下一行

xp 交换当前字符和其后一个字符

dd 剪切当前行

ndd 类似nyy,剪切当前行到下n-1行

:r1, r2d 剪切,p即可粘贴(所以删除其实就是剪切)

:r1, r2 m r3 将r1-r2行移动到r3的下一行


退出命令

:wqZZ 保存并退出

:q! 强制退出并忽略更改

:e! 放弃修改,并打开原文件


窗口命令

:split:new 打开新窗口,光标停在顶层的窗口上

:split file:new file 新窗口打开文件

使用:vsplit可以纵向打开窗口

Ctrl+ww 移动到下一个窗口

Ctrl+wj 移动到下方的窗口

Ctrl+wk 移动到上方的窗口

:close 关闭窗口

:q 退出

:only 只保留当前窗口,关闭其他窗口


注释命令

(利用替换命令)

:r1, r2 s/^/#/g 注释r1-r2行(将每行行首替换为#)

:r1, r2 s/^#//g 取消注释

:1, $ s/^/#/g 注释整个文档

:%s/^/#/g 注释整个文档

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/228671.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午6:28
下一篇 2026年3月16日 下午6:28


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号