Vim 使用笔记(快捷键)
Vim 设置相关问题
Vim 中和 IDEA 中的 Shift + Enter 快捷键相当的操作是什么?
Esc 回到 NORMAL 模式,然后按小写的 o,这样就会在当前行下面插入一行,并且光标会来到下一行的开头,模式会自动切换到 INSERT 模式。
如果是按大写的 O,那么,就会在当前行的上一行插入新的一行,然后光标来到上一行的开头,模式自动切换到 INSERT 模式。
如何设置 Vim 大括号自动补全并且换行对齐?
首先,要有以下的配置:
按:这个配置是用来设置智能缩进的。
然后,添加映射:
按:这个自动补全似乎不是一个好主意。之后还是被我取消掉了。
这个主要是为了写 C 语言时候用。
如何设置 Vim 显示行号?
添加如下配置:
Vim 有关 C 语言缩进相关的问题?
对于设置的解释:
- tabstop=X # 一个 TAB 字符占 X 个空格,C/C++、python 都建议设置为 4,下同
- softtabstop=X # 前面有 X 个空格时,再按下一次 tab,这 X 个空格就会和上一个 X 个空格组合成一个制表符,也就是方便退格
- shiftwidth=X # 每行缩进 X 个空格
- autoindent # 自动缩进
- cindent # C 语言风格的缩进
- smartindent #
智能缩进,每行都和前一行的缩进量相同,还能识别花括号,遇到
{
则取消缩进。 - expandtab # expandtab 是把输入的tab转换成空格
设置字符编码相关?
Windows 的 Vim 使其不要创建多余的文件?消除
~
和.un~
后缀文件生成的操作?
Vim 快捷键相关问题
基本操作?
ESC
:从当前模式转换到 NORMAL 模式;i
:从 NORMAL 模式转到 INSERT 模式;:
:命令行模式。Vim 希望你输入类似于保存该文档命令的地方。
方向键
光标向左移动一个字符?
h
光标向下移动一行?
j
或 Ctrl + J
光标向上移动一行?
k
或 Ctrl + P
光标向右移动一个字符?
l
按:是英文字母 l
。
移动光标至本行开头?
0
按:是数字 0
。
移动光标到本行末尾?
$
移动光标至本行第一个非空字符处?
^
向右移动一个词?
w
按:上一个字母和数字组成的词之后。
向右移动一个词?
W
按:以空格分隔的词。
向右移动 5 个词?
5w
向左移动一个词?
b
按:下一个字母和数字组成的词之后。
向左移动一个词?
B
按:以空格分隔的词。
向左移动 5 个词?
5b
移动至文件末尾?
G
移动至文件开头?
gg
设置缓冲区使当前行居中?
zz。
删除文本
删除光标处字符?
x
删除一个词?
dw
:从光标当前的位置开始删除,直到删除到单词的最后。
daw
:删除光标所在的一个单词。delete a word。
caw
:删除光标所在的一个单词,并且模式转成 INSERT
模式。
- 如果该单词是在一段文字的中间部分,即,前面也有单词,后面也有单词,此时,此命令在删除单词的同时,会将此单词后面的空格连带着删除,但是不删除前面的空格。
- 如果该单词是最后一个单词,并且后面紧跟着半角句号,那么,此命令会连带着删除原单词前面的空格。
- 如果如果该单词是最后一个单词,并且后面没有标点符号,那么,此命令不会删除原单词前面的空格。
bdw
:这是一个复合命令。b
可以让光标退回到单词开头的位置,而 dw 上面描述过的命令。
删除光标前面的单词。
在 NORMAL 模式下,键入 Ctrl + W
。
这个和在 bash 以及 PowerShell 中删除一个单词的方法是一样的。
删除至行首?
d0
删除至行末?
d$
删除至句末?
d)
按:啥叫句末?
删至文件开头?
dgg
删除至文件末尾?
dG
删除当前行?
dd
删除 3 行?
3dd
剪切、复制
剪切某一行?
dd。
如何全选复制?
按 ESC 键后,先按 gg
,然后按 yG
。
按:gg
是让光标回到文件开头,yG
是从当前行复制到文件结尾。
复制一个单词?
yaw
:复制光标所在处的单词。
yw
:和 dw
类似,只是,这个是复制。从光标所在处复制,直到复制到单词的最后。
更多见:vim 的复制粘贴。
翻页
翻到下一页?
在 vim 中翻页,同样可以使用 PageUp 和 PageDown,不过,这会使手指移出主键盘区。
所以,可以使用 Ctrl + B
和 Ctrl + F
来进行翻页,它们的功能等同于 PageUp 和 PageDown。
Ctrl + B
和 Ctrl + F
前也可以加数字,来表示向上或向下翻多少页。
向下翻一行?向上翻一行?
- 向下:
Ctrl + E
- 向上:
Ctrl + Y
搜索
In Vim, you can find and replace text using the :substitute (:s) command.
搜索一个单词?
按 /
然后输入要搜索的单词
更多内容,见:
Some Tricks
按:&
表示匹配到的内容。这个命令执行完之后,文本不会发生任何变化,但是会有一个
Side Effect,即我们会得到当前这个文本的字符数量。
其他
如何判断 Vim 是否剪切板?
在 Shell 输入
如果输出包含 +clipboard
就表示支持,如果是
-clipboard
就表示不支持。
如果不支持,Ubuntu 可以先卸载原来的 Vim,然后安装 vim-gtk。
Window 下的 Git Bash 如何配置 Vim?
在 C:\Program Files\Git\etc
目录下找到 vimrc
文件,然后使用 VSCode 打开进行配置(需要管理员权限)。
参考:
1、缩进相关