vim初解

:set cursorline
:set nocursorline
:colorscheme desert / darkblue / evening
:set background=light / dark
:set nu
:set nonu
:set filetype 如果 filetype=  就要手动设置filetype的类型
:set filetype=java
:syntax enable
:set ruler
:set ignorecase 搜素的时候区分大小写
:set hlsearch
:set nohlsearch | :nohlsearch
:set incsearch
:set nowrapscan
:scriptnames - 查找配置文件
初步:
i a o O
删除换行符:J
u 撤销
行撤销:U
c+R 重做
ZZ 保存推出

移动:
w 下一个词词首 W
e 下一个词词尾 E
b 上一个词词首 B
ge 上一个词词尾 GE

^  行首非空字符
0  行首字符
$ 行尾

<num>f<char> F find
<num>t<char> T to
; 命令重复 ,反向命令重复
% 括号匹配

gg
<num>G
50%
H(home) M(middle) L(last)

c+u(up) c+d(down) 半屏
c+f(forward) c+b(back) 整屏
c+e(extra) c+y 行
使用j滚动的时候,zz可以使光标留在屏幕中间 zt(最上) zb(最下)

'' 在位置上跳来跳去
c+o 跳到较老的地方 c+i跳到较新的地方
:jumps 可以找到任意你想跳到的地方

m<mark> '<mark> 做标记 然后跳过去
:marks
特殊的标记:
‘ 跳转前
“ 最后一次修改
[ 最后修改的开始位置
]最后修改的结束位置
搜索:
\是逃脱字符
/word
?word
n N
在一个单词上使用* #(反向查找),然后用n一个一个遍历
g* g#是部分匹配查找
指定词首词尾:/\<the\>
/^word$ 匹配行首和行尾
/h.E  .的意思是匹配任意字符
改动:
d<num>w d<num>b
d<num>e d<num>ge
d<motion>
c和d用法一样 cc可以修改一行
x=dl X=dh
D=d$ C=c$
s=cl S=cc
. 重复最后一次的修改操作
v 进入可视模式
V 按行选择
c+v 列块模式

p(put)放置
交换两个字符:xp 想一想

y(yank) 复制
yw 复制一个单词(包含字符后的空格)
ye (不保函空格)
y<num>w y<num>e y<b> y<num>ge
yy = Y 复制一整行
y$ y0 复制到行首 行尾

文本对象:
dw 不同于 daw
caw 修改一个单词
cis (change inner sentence) 修改一个句子
cas

~ 修改光标下字符的大小写
文件:
编辑另一个文件
:edit foo.txt
:edit! foo.txt
:hide edit foo.txt

vim t1.txt t2.txt t3.txt
:next 去下一个 :next! :wnext 一个是放弃修改,一个是先保存在去下一个
我在看哪个文件?:args
:previous 去前一个 :wprevious
:last :first

编辑另外一个文件列表:
:args 4.txt 5.txt
:args *.txt

c+^ 在两个文件轮换

'" 跳转到你上次离开这个文件时候的位置
'. 跳转到你上次修改这个文件时候的位置

m<小写字母> 标记是当前文件有效的
m<大写字母> 标记是在所有文件中都起作用的,全局
mK      'K  就回去了
:marks K 查看K的位置
c+o c+i 在整个跳转系列中前后跳转

使用全局的寄存器:
"fyas 把一句话拷贝到f寄存器中
"fp 把f寄存器中的数据put上

添加到文件:
:write >> out.txt

:set backup 设置产生备份文件
:set autowrite 自动保存
:set noautowrite 不自动保存
打开只读文件
view file = vim -R filen= vim -M file

另存为:
:saveas newfile

重命名:
:file newName
分隔窗口
:split
:vsplit 在左边打开
:split otherFile 在新窗口打开其他文件
:3slplit otherFile 用三行的窗口打开一个文件

:new 打开窗口编辑一个新文件
:vertical new 垂直打开一个新窗口

c+ww 在窗口间切换
c+w hjkl 在窗口间切换
c+w HJKL 移动窗口

:close 关闭窗口
:only 关闭其他窗口
:qall 全部窗口退出
:wall 所有窗口保存
:wqall
:qall!

vim -o 1.txt 2.txt 3.txt 为每个窗口打开一个窗口
:all 把所有的文件都打开
:vertical all  如果vim已经打开了,则打开列表中所有的文件,每个文件一个窗口

更多搜索 vimdiff
vimdiff 1.txt 2.txt 显示文件差异

:tabedit aFile 标签页打开
:tab split 会新建一个tab, 但使用相同的缓冲区
gt 去某个tab
更多搜索tab模式

:edit main.c
:vertical diffsplit main.c~

打开折叠 zo zc
]c [c 跳到下一个修改点 - ??

猜你喜欢

转载自shixin42.iteye.com/blog/1681352
Vim