"VIM使用技巧" Vim 是一个功能强大的文本编辑器,它有很多实用的技巧可以提高我们的编程效率。下面我们将介绍一些 Vim 的使用技巧。 浏览代码 -------- 我们从浏览代码开始。有时候,我们需要查看多个文件,这时候传统的做法是,我们开多个 tty 终端,每个 tty 里用 Vim 打开一个文件,然后来回切换。这很没有什么效率。我们希望在一个 Vim 里打开多个文件,甚至浏览程序目录。 浏览目录的命令很简单:`:E`注意,是大写。于是,你会看到下面这样的界面: 这个界面中,你可以用 `j`, `k` 键上下移动,然后回车,进入一个目录,或是找开一个文件。你可以看到上面有一堆命令: * `–` 到上级目录 * `D` 删除文件(大写) * `R` 改文件名(大写) * `s` 对文件排序(小写) * `x` 执行文件 当然,打开的文件会把现有已打开的文件给冲掉——也就是说你只看到了一个文件。 如果你要改变当前浏览的目录,或是查看当前浏览的目录,你可以使用和 shell 一样的命令: `:cd <dir>` – 改变当前目录 `:pwd` – 查看当前目录 缓冲区 ---- 其实,你用`:E` 浏览打开的文件都没有被关闭,这些文件都在缓冲区中。你可以用下面的命令来查看缓冲区: `:ls` 于是,在你的 Vim 下,你会看到如下界面: 你可以看到 Vim 打开了四个文件,编号是 4,5,6,7,如果你要切换打开的文件,这个时候,你不要按回车(按了也没事,只不过按了就看不到`:ls` 输出的 buffer 列表了),你可以使用下面的命令切换文件(buffer 后面的 4 表示切到 4 号文件也就是 `src/http/ngx_http.c`): `:buffer 4` 或是: `:buffer src/http/ngx_http.c` 注意,你可以像在 Shell 中输入命令按 `Tab` 键补全一样补全 Vim 的命令。 你还可以动用如下命令,快速切换: `:bnext` 缩写 `:bn` `:bprevious` 缩写 `:bp` `:blast` 缩写 `:bl` `:bfirst` 缩写 `:bf` 上图中,我们还可以看到 5 有一个 `%a`,这表示当前文件,相关的标记如下: * `-`(非活动的缓冲区) * `a`(当前被激活缓冲区) * `h`(隐藏的缓冲区) * `%`(当前的缓冲区) * `#`(交换缓冲区) * `=`(只读缓冲区) * `+`(已经更改的缓冲区) 窗口分屏浏览 ------------- 相信你在《Vim 的窗口分屏》一文中,你已经知道了怎么拆分窗口了。其实,我更多的不是用拆分窗口的命令,而是用浏览文件的命令来分隔窗口。 如:把当前窗口上下分屏,并在下面进行目录浏览: `:He` 全称为 `:Hexplore` (在下边分屏浏览目录) 如果你要在上面,你就在 `:He` 后面加个 `!`,`:He!` (在上分屏浏览目录) 如果你要左右分屏的话,你可以这样: `:Ve` 全称为 `:Vexplore` (在左边分屏间浏览目录,要在右边则是 `:Ve!`) 下图是分别用 `:He` 和 `:Ve` 搞出来的同时看三个文件: 在分屏间的跳转和切换 ----------------- 在《Vim 的窗口分屏》一文中提过了: 先按 `Ctrl + W`,然后按方向键: * `h` * `j` * `k` * `l` 分屏同步移动 ------------- 要让两个分屏中的文件同步移动,很简单,你需要到需要同步移动的两个屏中都输入如下命令(相当于使用“铁锁连环”): `:set scb` 如果你需要解开,那么就输入下面的命令: `:set scb!` 注:`set scb` 是 `set scrollbind` 的简写。 Tab 页浏览目录 ------------- 分屏可能会让你不爽,你可能更喜欢像 Chrome 这样的分页式的浏览,那么你可以用下面的命令: `:Te` 全称是 `:Texplorer` 下图中,你可以看到我用 `Te` 命令打开了三页,就在顶端我们可以可以看到有三页,其中第一页 Tab 上的数字 3 表示那一页有 3 个文件。 我们要在多个 Tab 页中切换,在 normal 模式下,你可以使用下面三个按键(注意没有冒号): * `gt` – 到下一个页 * `gT` – 到前一个页 * `{i} gt` – `i` 是数字,到指定页,比如:`5 gt` 就是到第 5 页 你可以以使用 `:tabm {n}` 来切换 Tab 页。 gvim 应该是:`Ctrl+PgDn` 和 `Ctrl+PgUp` 来在各个页中切换。 如果你想看看你现在打开的窗口和 Tab 的情况,你可以使用下面的命令: `:tabs` 于是你可以看到: 使用如下命令可以关闭 tab: (当然,我更喜欢使用传统的 `:q, :wq` 来关闭): `:tabclose [i]`
剩余7页未读,继续阅读
- 粉丝: 47
- 资源: 20
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言-leetcode题解之70-climbing-stairs.c
- C语言-leetcode题解之68-text-justification.c
- C语言-leetcode题解之66-plus-one.c
- C语言-leetcode题解之64-minimum-path-sum.c
- C语言-leetcode题解之63-unique-paths-ii.c
- C语言-leetcode题解之62-unique-paths.c
- C语言-leetcode题解之61-rotate-list.c
- C语言-leetcode题解之59-spiral-matrix-ii.c
- C语言-leetcode题解之58-length-of-last-word.c
- 计算机编程课程设计基础教程