vim三种可以选择的模式
Normal mode:Vim的缺省模式,在该模式下运行命令。
Insert mode:在该模式下插入/写文本。
Visual mode:在该模式下可以选择一块文本区域,并对该区域内的文本执行命令或编辑操作。
Vim 允许你在文本中放置自定义的标记。命令 "ma" 用 a 标记当前的光标位置。你可以在文本中使用 26 个标记(a到z)。这些标记是不可见的,只是一个由 Vim 记住的位置。
Xvim 中支持文件本地标记,但是不支持全局标记."."标记以及gi已被支持
b或B :光标左移一个字至字首
h :光标左移一个字符
l :光标右移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
w或W :光标右移一个字至字首
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾
“^”:移动到光标所在行的行首
G 移动到这个文件的最后一行(常用)
nG n为数字。移动到这个文件的第n行。例如20G则会移动到这个文件的第20行(可配合:set nu)
gg 移动到这个文件的第一行,相当于1G(常用)
n<Enter> n为数字。光标向下移动n行(常用)
% 括号匹配
Ctrl + d 向下滚动半屏
Ctrl + u 向上滚动半屏
Ctrl + f 向下滚动一屏
Ctrl + b 向上滚动一屏
zz/zb/zt: 光标所在的行将被移到屏幕的中间(zz), 底部(zb), 最上面(zt)
ctrl+i 向前跳到前几次光标位置
ctrl+o 向后跳到后几次光标位置
gd 如果要打开当前光标位置的定义文件,在Xvim中使用gd代替gf
i 在当前位置生前插入
I 在当前行首插入
a 在当前位置后插入
A 在当前行尾插入
o 在当前行之后插入一行
O 在当前行之前插入一行
x:剪切当前字符到剪贴板。
X 删除当前字符的前一个字符。X=dh
dd 删除当前行
D 删除当前字符至行尾。D=d$
d:剪贴选择的内容到剪贴板
dd:剪切当前行
y:拷贝选择的内容到剪贴板
yy:拷贝当前行
Y:拷贝当前行
c:剪贴选择的内容到剪贴板并且进入插入模式。
cc:剪切当前行并且进入插入模式
C:和 D 类似,最后进入插入模式
r 修改光标所在字符
J 你可以把两行连起来,这意味着两行间的换行符被删除了
gu或者gU 形象一点的解释就是小u意味着转为小写;大U意味着转为大写.剩下的就是对这两个命令的限定(限定操作的行,字母,单词)等等
u或者Ctrl+r 撤销操作
v或者V 切换Visual mode模式
/text 查找text,按n健查找下一个,按N健查找前一个。
?text 查找text,反向查找,按n健查找下一个,按N健查找前一个。
s 替换
g 替换全部
n 下一个
N 前一个
支持icu格式正则表达式
下面的命令不能工作
:%s/xxxx/yyyy/
Xvim不能替换每行首个出现的单词,下面是替换全部的出现的单词
:%s/xxxx/yyyy/g
q{寄存器}, 记录开始
@ 播放记录的命令
扩展命令
命令 | 命令 |
---|---|
:w[rite] | 保存 |
:wq | 保存退出 |
:q[uit] | 退出 |
:s[ubstitute] | 字符串替换 |
:set | 设置一些环境变量 |
:map | 所有模式的映射 |
:nmap | normal mode映射 |
:vmap | visual mode映射 |
:imap | insert mode映射 |
:omap | Maps operator pending mode |
命令 | 说明 |
---|---|
:run | xcode代码运行 |
:make | 构建xcode代码 |
:xhelp | 光标位置快速帮助 |
:xccmd | 执行xcode菜单 |
命令 | 说明 |
---|---|
[no]ignorecase | 忽略大小写 |
[no]wrap | 设置自动换行 |
[no]wrapscan | 循环搜索 |
[no]errorbells | 出错时响铃 |
[no]incsearch | 修改一个文件后,自动进行备份,备份的文件名为原文件名加“~“后缀 |
[no]gdefault | 行内替换 |
[no]smartcase | 有一个或一个以上大写字母的时候对大小写敏感 |
guioptions | 参考下表 |
选项 | 说明 |
---|---|
r | 显示垂直滚动条 |
b | 显示水平滚动条 |
可以通过修改 .xvimrc修改这些设置
Xvim 支持5中映射命令: map, nmap, vmap, imap, omap
例如
nmap n e
imap ' <Esc>
nmap u 5jiInsert some text<Esc>
nmap ,w :w<cr>
一个配置文件象 ~/.xvimrc. 每行执行一个扩展命令. 这里可以配置映射.
Example:
set ignorecase
set wrapscan
set guioptions=r
nmap n e
Command | Note |
---|---|
:w[rite] | |
:wq | |
:q[uit] | |
:s[ubstitute] | |
:set | See Options for supported variables |
:map | Maps globally across XVim, in all modes |
:nmap | Maps normal mode |
:vmap | Maps visual mode |
:imap | Maps insert mode |
:omap | Maps operator pending mode |
Command | Note |
---|---|
:run | Invoke Xcode's 'run' command |
:make | Invoke Xcode's 'build' command |
:xhelp | Show quick help for current insertion point |
:xccmd | Invoke arbitrary command in Xcode's actions in its menu. Takes one argument as its action to invoke. Actions hereare available. |
Command | Note |
---|---|
[no]ignorecase | |
[no]wrap | |
[no]wrapscan | |
[no]errorbells | |
[no]incsearch | |
[no]gdefault | |
[no]smartcase | |
guioptions | See below |
A limited subset of Vim options is implemented.
Option | Effect |
---|---|
r | Show vertical scrollbar |
b | Show horizontal scrollbar |
These changes only take effect on startup, meaning this option is only effective if used from within your .xvimrc.
XVim supports five map commands: map, nmap, vmap, imap, omap. A map command can change one or more keystrokes into one or more key strokes.
Note: For multi-key mapping timeout is not supported.
Examples:
nmap n e
imap ' <Esc>
nmap u 5jiInsert some text<Esc>
nmap ,w :w<cr>
At startup XVim looks for ~/.xvimrc. Each line in this file is executed as an ex command. This allows you to configure mappings and options.
Example:
set ignorecase
set wrapscan
set guioptions=r
nmap n e