在Windows上使用Vim
几年前使用vim,在此记录下Vim的命令以及_Vimrc配置文件
保存&退出命令(Save&Quit Command)
:w
#保存(后面加!强制执行)
:q
#退出(后面加!强制执行,不保存)
:wq
#保存并退出
:x
#保存并退出(仅在需要时保存)
ZZ
#保存并退出
ZQ
#退出不保存
搜索&替换命令(Search&Replace Command)
:/
#向下搜索(如果搜索出多个匹配,可按n键到下一个)
:?
#向上搜索
:s/old/new
#替换第一个匹配的
:s/old/new/g
#替换整行中匹配的
:%s/old/new/g
#全文件替换所有匹配的
:%s/old/new/gc
#全文件替换匹配的,需确认
:n,ms/old/new/gc
#从n行到m行替换,需确认
:%s/\s\+$//
#去掉所有行尾的空格
:%s/\(\s*\n\)\+/\r/
#去掉所有空白行
r
#替换当前字符
r
#进入replace模式进行编辑,从光标处开始替换
复制&粘贴命令(Copy&Paste Command)
yy
#复制当前行(相当于ddP)
xyy
#把当前行复制到寄存器x
xp
#粘贴寄存器x中的内容
p
#粘贴剪贴板板里(小写当前位置之后,大写当前位置之前)
:<Ctrl-r>+
#命令行粘贴
:<Ctrl-r>"
#命令行粘贴
:<Ctrl-f>
或q:
#打开命令行窗口
剪切&删除命令(Cut&Delete Command)
*
和#
#匹配光标当前所在的单词,(*
是下一个,#
是上一个)
C
#剪切从光标位置到行尾到剪贴板,并进入插入模式
cc
#剪切当前行并进入插入模式
D
#剪切从光标位置到行尾到剪贴板
dd
#删除当前行,并把删除的行存到剪贴
ndd
#删除当前以下n行
dt"
#删除所有内容,直到遇到"
dG
#从当前行到最后一行全删
dnG
#删除当前行到第n行
s
#剪切当前字符到剪贴板并进入插入模式
s
#删除光标所在行并进入插入模式
x
#剪切当前字符到剪贴板
cw
#替换从光标所在位置后到一个单词结尾的字符
插入&编辑命令(Insert/Edit Command)
a
#在当前光标前插入
a
#在当前行尾插入
i
#在当前光标后插入
i
#在当前行首插入
o
#在当前行的下一行插入一行
o
#在当前行的上一行插入一行
i
=>[ESC]
#按I后插入内容,再按ESC键为每一行生效(Ctrl+q可视块使用hjkl(或%)来移动光标选择区域)
正常模式快速移动命令(Normal mode fast-moving command)
k
#向上
j
#向下
h
#向左
l
#向右
\
` #移动到上次编辑位置(去掉\
编辑器问题)
0
#移动到本行行头
$
#移动到本行行尾
%
#移动到与当前括号匹配的括号处,包括 (, {, [
^
#移动到当前行的第一个非blank字符位置
b
#移动到上一个单词起始处
b
#移动到上一个单词起始处,长跳
e
#移动到下一个单词结尾处
e
#移动到下一个单词结尾处,长跳
w
#移动到下一个单词起始处
w
#移动到下一个单词起始处,长跳
G
#移动到当前文件最后一行
h
#移动光标到屏幕上面
l
#移动光标到屏幕下面
M
#移动光标到屏幕中间
fx
#移动到下一个为x的字符处
nfx
#移动到当前行当前光标后第n个位置出现的x字符处
tx
#移动到x字符前一个字符处
gt
#移动到下一个标签页
gt
#移动到上一个标签页
gg
#移动到当前文件第一行
gd
#移动到当前光标所在的变量的声明处
g_
#移动到本行最后一个不是blank字符的位置
<ctrl-f>
#向上翻一页
<ctrl-b>
#向下翻一页
:n
#移动光标到n行
其它常用命令(Other commonly used commands)
<
或>
#左右缩进
==
#自动缩进当前行
\~\
#大小写切换(去掉\\
编辑器问题)
.
#小数点重复上一次命令
u
#撤销
<ctrl-r>
#重做
j
#当前行与下一行合并
V
#按行选择(v进入可视模式使用hjkl(或%)来移动光标选择区域)
ga
#显示当前光标下的字符在使用的encoding下的内码
qa
#把操作记录在寄存器a,@a会replay被录制的宏,@@是一个快捷键用来replay最新录制的宏
:noh
#关闭搜索后高亮效果
:split(sp)
#创建水平分屏
:vsplit(vsp)
#创建垂直分屏
:e <path/to/file>
#打开一个文件
:saveas <path/to/file>
#另存为 <path/to/file>
:bp
#跳转到上一个缓冲区
:bn
#跳转到下一个缓冲区
_Vimrc配置
待续...