0%

vim 命令备忘

vim 命令备忘

insert

  • A I
  • i a
  • o O

modify

  • r R
  • gu gU guu gUU Vu VU
  • J ~
  • = < >
  • c C cc cw
  • p P

motion

  • h j k l
  • 0 $
  • ^ g_
  • w W e E b B ge
  • ( ) { }
  • C-i C-o
  • C-d C-u
  • 10G/10gg/:10
  • G gg
  • H M L
  • % * #
  • fa ta Fa Ta

deleting text

  • x X
  • d$/D dG
  • dd/:d

searching

  • /string ?string n N
  • s/str/str/g
  • %s/str/str/gc

visual

  • v
  • vi( va(
  • v2i( v2a(
  • C-v

file

  • :e
  • :w
  • :r
  • :q
  • :saveas
  • :x/ZZ/:wq
  • :n :p
  • :qa
  • :bn :bp :n :bd
  • C-w

others

  • .
  • C-r u U
  • 100iasd [ESC]
  • qa, q, @a, aa

分屏

  • vim -On file1 file2
  • vim -on file1 file2
  • vim -p file1 fil2 标签页
  • C-w hjkl
  • C-w v/s

浏览目录

  • :E
  • :He! :He 上,下分屏浏览目录
  • :Ve :Ve! 左右
  • :Te tab页浏览目录
  • gt gT 换页 {i}gt
  • :tabs
  • :tabclose

保存回话

  • :mksession file.vim
  • vim -S file.vim
  • :qa :wqa

quickfix

  • :cw cwindows 把命令结果取回
  • :cp :cn 上一个,下一个
  • :cl 列出所有
  • :cc 显示详细

代码补全

  • C-n C-p 关键字补全 C-E 退出下拉窗口 C-Y 退出并接受当前选择
  • C-x

其他编程相关

  • ga 查看光标字符ascii
  • gf include的文件
  • [[ ]] 跳到{代码块
  • gD 调到变量定义处(第一次出现)
  • 跳到上次停靠的地方, C-i C-o
  • mx 设置书签,x只能a-z
  • `x
  • >> <<
  • >aB >iB 缩进块
  • 选中单词viw,修改光标所在单词ciw

define

  • <,undo>
  • <,tree>
  • <,line>
  • <,tag>
  • <,r> # replace the selected text
  • <,n> <,p>
  • <F5>

completion

<C-space> <C-p> <C-n> <Tab>

go definition/assignment

<,g> <,d> <,n> <,rname>

find file

<C-F>

mutiply select

<C-N> <C-P> <C-x>