Vim之高手进阶篇

距离上一次发博客也是有一段时间了!


在命令模式下移动光标

                        H(屏幕首行开头)
                        gg(文章首行开头)
0(行首)                                                 $(行末)
b(前一个单词开头)                                        w(后一个单词开头)
                                                        e(后一个单词末尾)
                        G(文章末行开头)

从命令模式进入插入模式

o       " 在当前光标所在行下面插入一行
O       " 在当前光标所在行上面插入一行

分屏模式

  • 适用于多文件处理

横向分屏

:sp otherfilename   " split

垂直分屏

:vsp otherfilename  " vertically split

切换Viewport

按键作用
Ctrl + w -> h移动光标到左边的viewport
Ctrl + w -> j移动光标到下边的viewport
Ctrl + w -> k移动光标到上边的viewport
Ctrl + w -> l移动光标到右边的viewport
Ctrl + w -> +扩大当前viewport
Ctrl + w -> -缩小当前viewport
Ctrl + w -> =重新均匀分配各个viewport的占比
Ctrl + w -> r调换各个viewport的位置。用R的话是反向调换
Ctrl + w -> q 或c关闭当前viewport
Ctrl + o 或 :only只保留当前所在viewport

字符搜索

/                   " 顺序查找(n下一个、N上一个)
?                   " 逆向查找
%                   " 配对括号查找

字符替换

:s/old/new          " 只改当前所在行的第一个
:s/old/new/g        " 只改当前所在行的所有
:#,#s/old/new/g     " #,#表示若干行中首位两行的行号
:%s/old/new/g       " 替换整个文件中的每个匹配符
:%s/old/new/gc      " 替换整个文件中的每个匹配符, 但会提示是否进行替换

文件合并

:r filename         " 在光标后插入一个文件的内容

在vim中执行外部shell命令

:! shell_command
:w FILENAME                 " 可将当前编辑文件保存FILENAME文件中
v motion :w FILENAME        " 可将当前编辑文件中可视模式下选中的内容保存到FILENAME文件中
:read FILENAME              " 可提取磁盘文件FILENAME并将其插入到当前文件的光标位置后面
:read ! wc %                " 可将文件包含的行数、单词数和字符数输出到当前文件的光标位置后面
:2read ! wc %               " 插入到第二行,使用`$`在最后一行插入,`0`在第一行前面插入

保存当前所有打开的文件及其状态

:mksession ~/.vim/sessions/your_session_name.vim

还原上次会话

  • 法一::source ~/.vim/sessions/your_session_name.vim
  • 法二:vim -S ~/.vim/sessions/your_session_name.vim

:本文内容部分来自互联网整理,部分来自个人经验总结;本文将持续收集更新,欢迎留言补充!

要是觉得不错,就鼓励一下吧!