CodeMirror Vim(私有)
Key buffer:
Vim mode:
https://codemirror.net/demo/vim.html
Some Vim Command
设置
:set shiftwidth = 4 设置缩进的空格数为4 :set fileencoding 查看编码 :set ignorecase 或 :set ic 查找时无视大小写
替换
单字符替换:在命令模式下使光标位于要替换的字符,按r,再按需要的字符, R替换多个,需要ESC退出 :s/h3/h2/ 替换当前行第一个h3为h2 :s/h3/h2/g 替换当前行全部h3为h2 :74,80s/em/b/g 将74-80行的全部em替换为b :%s/60.173.10.177/&/gn 查看log中60.173.10.177出现了多少次
正则替换
量词 + 代表【1~n】次,在Vim 里替换要用 \+
量词 {n, m} 匹配至少n 次,最多m 次,在Vim 里要用 \{n, m}
同样捕获的(,在Vim 里替换要用 \( 例子: :%s/[a-z]\+[^a-z,]{2,}\([a-z]\)/\1/g
删除
:g/请选择/d 删除包含“请选择”的所有行 :g!/请选择/d 删除不包含“请选择”的所有行 :g/^\s*$/d 删除空行 要查找相同的两行,先将内容排序,然后查找前一行等于后一行者 :sort 排序 /^\(.\+\)$\n\1 :g/^\(.\+\)$\n\1/d
合并行
J 合并行,带空格 gJ 合并行,无空格
剪切板
:reg 查看剪切板 "9y 粘贴到剪切板第9个位子 "9p 粘贴第9个位子 Macbook 拷贝全文到系统剪切板: :%w !pbcopy Macbook 拷贝选中的部分去系统剪切板: v 选中要拷贝内容 输入:w !pbcopy (会自动变成:'<,'>w !pbcopy)
折叠行
v 选中要折叠的行 zf (create fold) zo (open fold) zc (close fold) zd (delete fold) 要按快点,如果zc两个键点得慢,会失灵
光标
ctrl-f ctrl-b 上下翻屏 Ctrl-o Ctrl-i 光标的回退前进 `` 光标的前进回退切换 zt zz zb set current line at top,center,bottom of window H M L 光标移动屏幕的上中下方
查找
% 匹配光标所在处的大中小括号{[(移动到反括号 * # 匹配光标当前所在的单词,移动到Next/Last匹配的单词
分屏
:Ve = :vsp + :Te
:Se = :sp + :Te
列模式
Ctrl+V(linux) Ctrl+Q(win) 进入列模式(每一列接受相同的指令)
然后用 J 移动选中多行, $ 到行尾 A 插入<br/>(或 0 到行首 I 插入-)
Esc 退出(不是Ctrl+C, Mac是option+Esc),选中的这几行同时增加 <br/> 或 -
screenshot
另存为
:sav filename 另存为
保存会话
:mksession ~/.session.vim 如果文件重复会报错
:mksession! ~/.session.vim 强行写入
vim -S ~/.session.vim 恢复上次会话(gvim -S c:/users/mark/.session.vim)
vim find与tab 历史buf
vim $(f . 'mark/li')
:ls 显示所有 buf 清单, vim $() 或 :Vex :Te :Te : 和 tabnew 打开的 bufs
:bn 查看 Next buf
:bp 查看 Prev buf
:b34 打开 buf 34
:bd 3 Delete buf 3
:tabs 显示所有tabs 及tab number,方便${number}gt
特殊应用
:! 偷瞄一眼
:!ls 便瞄一眼执行ls命令的结果
:w !sudo tee % 当前用户非root
:%!xxd 转化为二进制模式
:%!xxd -r 修改了部分编码后,可以通过此命令恢复成文本模式
:%TOhtml 将文字生产一个html文件
命令行
Ctrl + R 搜索命令历史记录 Ctrl + K 删除光标右侧所有字符 Ctrl + U 删除光标左侧所有字符