Vim基础操作

  1. 进入插入模式:i光标当前插入,a当前光标后插入,o向下增加一行插入,I行首插入,A行尾插入,O向上插入一行插入;

  2. 插入模式下:

    • ctrl+h 删除一个字符
    • ctrl+w删除一个单词
    • ctrl+u删除到行首
  3. normal模式下:

    • ctrl+e向上一次滚动一行
    • ctrl+f向下翻页
    • ctrl+b向上翻页
    • ctrl+d向下翻半页
    • ctrl+u向上翻半页
  4. k/j/l/l上下左右键;

  5. ctrl+[或ctrl+c相当于按esc键;

  6. gi快速返回到上次编辑位置;

  7. w/W下个单词开头;

  8. e/E下个单词结尾;

  9. b/B上个单词开头;

  10. 关于word/WORD:不以/以空格为分割的单词;

  11. f+一个字符:跳转该行到第一个匹配的字符,按,跳转到上个匹配字符,按;跳转到下个匹配的字符,F+一个字符则相反;

  12. 按0跳到行首,^跳到行首非空字符,$跳到行尾;

  13. 按{}()跳到以空行为分割的段首/段尾;

  14. gg/G跳到文首/文尾;

  15. nG跳到n行;

  16. H/M/L跳到开头/中间/结尾;

  17. ctrl+o快速返回上次编辑的地方;

  18. zz把屏幕置为中间;

  19. x删除一个字符;

  20. dw删除一个单词,diw删除一个word,daw删除一个WORD;

  21. dd删除一行,ndd删除n行,dt)删除到)的内容,d$删除到行尾,d0删除到行首;

  22. v进入视图模式,V进入试图模式以行为选择单位;

  23. r+字符将光标字符替换为输入字符;

  24. s+字符将光标字符替换为输入字符并进入插入模式;

  25. 4s删除4个字符替换并进入插入模式;

  26. R一直替换后面的字符,S整行删除并进入插入模式;

  27. ciw删除一个word进行更改,caw删除一个WORD进行更改;

  28. ct)删除到)的内容进行更改;

  29. set hls设置高亮;

  30. /前向搜索,?反向搜索,按n/N跳到下/上一个匹配

  31. 替换命令:

    1
    :[range]s[ubstitude]/{pattern}/{string}/flags
    • range,比如10,20表示第10行到20行,%表示全部

    • pattern要替换的格式

    • string替换后文本

    • flags

      • g全局
      • c确认,可以确认或拒绝修改
      • n报告匹配到的次数,不替换
  32. 精确匹配替换

    1
    :%s/\<quack\>/jiao/

Vim基础常识

  1. buffer:打开的一个文件的内存缓冲区;

  2. 窗口:buffer可视化的分割区域;

  3. tab:可以组织窗口为一个工作区;

  4. buffer切换,:ls列出当前buffer,:b n跳到第n个buffer;:b pre/next/first/last跳到前一个/下一个/第一个/最后一个buffer;

  5. 一个缓冲区可以分割多个窗口,每个窗口可以打开不同的缓冲区;

  6. :vsp垂直分割窗口,

  7. :sp垂直分割窗口;

  8. ctrl+h/j/k/l移动到左/下/上/右窗口;

  9. ctrl+H/J/K/L将当前窗口移动到左/下/上/右;

  10. tab标签页,将窗口分组;

  11. 新建标签页,:tabnew 文件名;

  12. gt切换下一个标签页,gT切换上一个标签页;

  13. tab filename 在新建标签页打开filename文件;

  14. :tabc(lose)关闭当前标签页;

  15. :tabo(oly)只保留当前标签页;

  16. 文本对象:

    1
    [number]<command>[text object]
  17. viw选中一个word;

  18. vaw选择一个WORD;

  19. 复制粘贴:y/p,v选中,p粘贴,yiw复制一个word,yaw复制一个WORD;

  20. yy复制一行,dd剪切一行,nyy复制n行,ndd剪切n行;

  21. 插入模式下,ctrl+c复制,ctrl+v粘贴;

  22. :set autoindent设置自动换行;

  23. 设置自动换行后粘贴后混乱,:set paste粘贴后再:set nopaste使自动换行继续起作用;

  24. vim的寄存器

    • 默认使用无名寄存器
    • ayiw 复制到a寄存器,biw复制到b寄存器
    • 寄存器名字从a-z
    • “”代表无名寄存器
    • “0代表复制寄存器
    • ”+复制到系统剪贴板
    • “%表示当前文件名
    • ”,上次插入的文本
  25. :echo has(‘clipboard’),显示1代表支持clipboard,:set clipboard=unaned后可以直接对系统剪贴板进行操作;

  26. :e!不保存更改重新加载文件;

  27. :colorscheme查看当前配色,:colorscheme ctrl+d查看系统提供的配色,:colorscheme 配色名字 选择配色;

  28. :syntax on打开高亮;

  29. 宏,q+寄存器录制操作,再按q停止录制,v进入视图模式选择要操作的文本,@寄存器重复宏操作(录制的操作);

  30. 按v进入视图选择要操作的文本,:’<’>normal @a,选中文本进行宏操作;

  31. 不使用宏,:’<’>normal 依次输入操作表示对选中文本各行进行操作;

  32. ctrl+n/p补全单词;

  33. ctrl+x+f补全文件名;

  34. ctrl+x+o配合插件进行补全;

  35. 配置文件~/.vimrc;

  36. 常用设置及映射,set nu设置行号,colorscheme 配色名字 修改配色,syntax on打开高亮,set hlssearch设置搜索高亮,set pasteloggle=设置F2键映射为:set passte;

  37. 设置,为leader键,let mapleder=","

  38. inoremap,i表示插入模式,nore表示非递归,map表示映射;

  39. inoremap w:w设置leader键加w键代替系统的:w回车;

  40. vim脚本vimscript;

  41. 映射:把一个操作映射到另一个操作;

  42. :map - x用-代替x删除字符;

  43. :map viw用空格键代替进入视图模式并选中一个word;

  44. 映射有关n/v/i分别表示normal模式/视图模式/插入模式;