Vim

vim
insert model
a光标后i光标前
A光标行尾I光标行首
o光标下方新增一行O光标上方新增一行
s删除光标所在字符S删除光标所在行
-
按边界*操作
yi*复制边界内内容yi"复制双引号内的内容
ya*复制边界以及内容ya{复制双引号及其内的内容
di*删除边界内内容di"删除双引号内的内容
da*删除边界以及内容da{删除双引号及其内的内容
ci*删除边界内内容,并切换为i模式ci"-
ca*删除边界以及内容,并切换为i模式ca{-
-
copy & cut
ggyG复制全部gg"+yG复制全部到系统粘贴板
:7,10y复制[7,10]行不支持指定粘贴板
:7,10 copy 12相当于先复制[7,10]行,然后在第12行按p:7,10 co 12相当于先复制[7,10]行,然后在第12行按p
:7,10d剪切[7,10]行不支持指定粘贴板
:7,10 move 12相当于先剪切[7,10]行,然后在第12行按p:7,10 m 12相当于先剪切[7,10]行,然后在第12行按p
yy复制行yy、y1y复制光标所在行
yw复制单词yw、y1w复制光标及其后的1个单词
dd剪切行dd、d1d剪切光标所在行
dw剪切单词dw、d1w剪切光标及其后的1个单词
p在当前行下方粘贴内容P在当前行上一行粘贴内容
-
:reg查看所有粘贴板中内容
"+y将内容复制到系统粘贴板
"+p粘贴系统粘贴板中的内容
-
:s/old/new将当前行第一个old替换成new
:s/old/new/g当前行所有old替换成new
:%s/old/new所有行第一个old替换成new
:%s/old/new/g所有old替换成new
-
undo & redo
u撤销一步
ctrl r取消撤销
-
visual model
v切换到visual model
ggvG全选
vjjdv切换到visual model,jj选择从光标所在行开始的往下两行,d剪切
vjjyv切换到visual model,jj选择从光标所在行开始的往下两行,y复制
-
jump
%括号匹配跳转
$跳转到行尾^跳转到行首
G跳转到末行gg跳转到首行
nG移到n行
H移动光标到当前页的第一行L移动光标到当前页的最后一行
M移动光标到当前页的中间行
e移动光标到单词末尾b移动光标到单词开头
w移动光标到下一个单词开头
*移动光标到上一个insert位置
-
split
:sp水平分割窗口:vsp垂直分割窗口
:sp xxx.txt水平分割窗口并在新窗口打开xxx.txt:vsp xxx.txt垂直分割窗口并在新窗口打开xxx.txt
-
vim -On-O垂直分割、-n分割窗口数vim -on-o水平分割、-n分割窗口数
vim -O2 file1 file2垂直分割窗口打开file1 file2vim -o2 file1 file2水平分割窗口打开file1 file2
-
:only仅保留当前分屏:hide关闭当前分屏
Ctrl w c关闭当前窗口Ctrl w q关闭当前窗口,如果只剩最后一个窗口,则退出vim
-
Ctrl w, h、j、k、l切换窗口Ctrl w, H、J、K、L移动窗口到最左下上右
Ctrl w r互换窗口
:resize 30调整当前窗口高度
Ctrl w =所以窗口统一高度
Ctrl w +当前窗口高度+1Ctrl w -当前窗口高度-1
Ctrl f向前翻一页Ctrl b向后翻一页
Ctrl u向前翻半页Ctrl d向后翻半页

set

:set
:set ff=unixunix格式 行结尾 \n:set ff=dosdos格式 行结尾 \r\n:set ff查看行结尾格式
:set nu or :set number显示行号:set nonu or :set nonumber隐藏行号
:set wrap折行:set nowrap取消折行
:set hlsearch高亮显示搜索结果:set nohlsearch取消高亮显示搜索结果
:set autoread文件更新自动读取新文件:set noautoread取消文件更新自动读取新文件

.vimrc

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
set nu
set nocompatible
set laststatus=2
set statusline=%F%m%r%h%w%=(%{&ff}/%Y)\ (line\ %l\/%L,\ col\ %c)
set linespace=3
set cursorline
set cursorcolumn

highlight CursorLine term=reverse,bold cterm=reverse,bold ctermfg=DarkGray ctermbg=black guibg=Grey90
highlight CursorColumn term=reverse,bold cterm=reverse,bold ctermfg=DarkGray ctermbg=black guibg=Grey90

syntax enable
filetype plugin indent on
let g:rustfmt_autosave = 1

注意

vim的~/.vimrc配置项,屏蔽掉下面这句话:

1
set fileencodings=utf-8,gb2312,gbk,gb18030,ucs-bom

再用 vim 打开jpeg文件,显示ffd8 ffc0 0011 0804ffd9 0a,显示正确
vim 为了支持识别和显示中文,规定了 vim 的 fileencodings
当vim打开文件时,会使用规定的编码格式对数据进行解析
jpeg的文件头FFD8、尾FFD9 不是任何一个中文的编码,vim找不到对应的中文字,就显示为??,即:3f3f

Tags: