网络书屋(Web Reading Room)

A blogging framework for hackers.

Vim的乐趣

vim有很多基础教程,我看过比较好的是learn vim progressively

  • % : Go to the corresponding (, {, [
  • * (resp. #) : go to next (resp. previous) occurrence of the word under the cursor

Abstract:

1,在屏幕中移动光标:

vi & vim 命令行模式操作移动光标位置都是指移动到要编辑单词、字母的前面。

    按键                                           操作描述
    h                                           光标左移一个字符;
    j                                           光标下移一行;
    k                                           光标上移一行;
    l                                           光标右移一个字符;

    数值  +  G                                  光标移至“数值”所指行的行首;
    ^H                                          光标移至当前屏幕显示首行的行首;
    ^M                                          光标移至当前屏幕显示的中间行的行首;
    ^L                                          光标移至当前屏幕显示的最后一行的行首;

2,在文件行内移动光标:

    vi & vim 命令行模式操作光标行内移动,单词间以空格作为分隔字符,标点符号看作一个单词。

    按键                                          操作描述
    0    (数字零)                             光标移动到光标所在行的行首;
    $                                           光标移动到光标所在行的行末;
    w                                           光标移动到下一个单词的首字母前;
    b                                           光标移动到上一个单词的首字母前;
    e                                           光标移动到当前光标所在单词的最后字符前;

3,屏幕滚动:

    按键                                            操作描述
    ^F                                            屏幕向下滚动一屏;==>屏
    ^B                                            屏幕向上滚动一屏;
    ^D                                            屏幕向下滚动半屏;==>半屏
    ^U                                            屏幕向上滚动半屏;
    ^E                                            屏幕向下滚动一行;==>行
    ^Y                                            屏幕向上滚动一行;
    z + Enter                                     滚动屏幕,使当前光标所在行处于屏幕第一行;
    z + .                                         滚动屏幕,使当前光标所在行处于屏幕中间行;
    z + -                                         滚动屏幕,使当前光标所在行处于屏幕最后一行;

4, 多屏操作

4.1 启动时候分屏

1
vim -on/-On filename1 filename2....
  • 小写的o表示水平拆分,
  • 大写的O表示垂直拆分,
  • n表示需要拆分的个数,最后面跟上拆分后需要打开的文件名称

4.2 运行期间分屏

     按键                                         操作描述
    :sp [filename]                              水平拆分出一个窗格,后面可以接要打开的文件名,如果没有则将当前窗口进行拆分
    :vsp [filename]                             垂直拆分出一个窗格
    :new [filename]                             水平拆分
    ^w+s                                        等效于:sp不带filename效果
    ^w+v                                        等效于:vsp不带filename效果

4.3 运行期间光标移屏

     按键                                         操作描述
    ^w+h                                        光标移动到左边窗口
    ^w+j                                        光标移动到下面窗口
    ^w+k                                        光标移动到上面窗口
    ^w+l                                        光标移动到右边窗口

4.4 运行期间屏幕切换

     按键                                         操作描述
    ^w+H                                        将当前窗口移动到最左边
    ^w+J                                        将当前窗口移动到最下面
    ^w+K                                        将当前窗口移动到最上面
    ^w+L                                        将当前窗口移动到最右边

4.5 运行期间调整窗口大小

     按键                                        操作描述
    ^w+=                                        一样大高度
    ^w+-                                        减小高度
    ^w++                                        增加高度

    ^w+<                                        减小宽度      ==>后来才知道分着这么细
    ^w+>                                        增大宽度

4.6 运行期间关闭屏幕

     按键                                        操作描述
    ^w+o                                        只留下当前窗口,其他窗口都进行关闭   ===>改命令很有作用!
    ^w+c                                        关闭当前窗口,若是最后一个 提示是否关闭
    ^w+q                                        关闭当前窗口,若是最后一个 仍然不提是关闭


    ^w+<                                        减小宽度
    ^w+>                                        增大宽度