linux命令行窗口分割,【linux】【vim】分割窗口split

显示两个不同的文件;或者同时显示一个文件的两个不同地方;又或者并排比较两个文

件。这一切都可以通过分割窗口实现。

(在emcas下面是十分常用的操作,并且分割比较方便,ctrl+x 1或者2)

##################################################################################

打开新窗口最简单的命令如下:

:split(水平分割) || :split (垂直分割)

这个命令把屏幕分解成两个窗口并把光标置于上面的窗口中.

CTRL-W w 命令可以用于在窗口间跳转。如果你在上面的窗口,它会跳转到下面的窗口,

如果你在下面的窗口,它会跳转到上面的窗口。(CTRL-WCTRL-W 可以完成相同的功能这

是为了避免你有时按第二次的时候从 CTRL 键上缩手晚了。)

关 闭 窗 口" :close "

任何退出编辑的命令都可以关闭窗口,象 ":quit" 和 "ZZ" 等。但 "close" 可

以避免你在剩下一个窗口的时候不小心退出 Vim 了。(十分重要的设定啊~)

关 闭 所 有 其 它 窗 口“ :only ”

这个命令关闭除当前窗口外的所有窗口。如果要关闭的窗口中有一个没有存盘,Vim 会显

示一个错误信息,并且那个窗口不会被关闭。

用分割窗口打开指定的文件(two.c) ":split two.c"

用分割形式新建文件" :new"

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

在 窗 口 间 跳 转(怎么说呢,现在鼠标可以代替,不过为了提高效率,还是推荐看看)

由于你可以用垂直分割和水平分割命令打开任意多的窗口,你就能够任意设置窗口的布

局。接着,你可以用下面的命令在窗口之间跳转:

CTRL-W h 跳转到左边的窗口

CTRL-W j 跳转到下面的窗口

CTRL-W k 跳转到上面的窗口

CTRL-W l 跳转到右边的窗口

CTRL-W t 跳转到最顶上的窗口

CTRL-W b 跳转到最底下的窗口

你可能已经注意到这里使用移动光标一样的命令用于跳转窗口。如果你喜欢,改用方向

键也行。

移动窗口

如果在分割多个文件时候发现文件顺序不是你所期望的.通过如下来更改

CTRL-W K 会使当前窗口移动到上面并扩展到整屏的宽度。

CTRL-W H 把当前窗口移到最左边

CTRL-W J 把当前窗口移到最下边

CTRL-W L 把当前窗口移到最右边

如果留心观察会发现,还是H-J-K-L四个键位.这里只是使用了大写状态了.

################################################################################

对所有窗口执行命令

:qall

这表示 "quit all" (全部退出)。如果任何一个窗口没有存盘,Vim 都不会退出。同时光

标会自动跳到那个窗口,你可以用 ":write" 命令保存该文件或者 ":quit!" 放弃修改。

:wall

这表示 "write all" (全部保存)。但实际上,它只会保存修改过的文件。Vim 知道保存

一个没有修改过的文件是没有意义的。(挺有意思啊~~)

vim -o one.txt two.txt three.txt

这个命令就是在终端下使用的,就是一次性打开3个文件并使用分割形式显示.

###############################################################################用 vimdiff 显示文件差异(这个命令十分的实用,特别是对比两文件时候,不用你自己去找出差异性)

在命令行中输入如下命令:(不是在 Vim 中)

vimdiff main.c~ main.c

Vim 会用垂直分割的方式打开两个文件。你只能看到你修改过的地方和上下几行的地方。

VV VV

+-----------------------------------------+

|+ +--123 lines: /* a|+ +--123 lines: /* a|

| text | text |

| text | text |

| text | text |

| text | changed text |

| text | text |

| text | ------------------|

| text | text |

| text | text |

| text | text |

|+ +--432 lines: text|+ +--432 lines: text|

| ~ | ~ |

| ~ | ~ |

|main.c~==============main.c==============|

| |

+-----------------------------------------+

那些没有修改的行会被折叠成一行,这称为 "关闭的折叠" (closed fold)。上图中

由 "

同。

标记为 "

清楚地表示出两个文件间的不同。

被删除的行在 main.c 窗口中用 "---" 显示,如图中用 "

这些字符并不是真的存在。它们只是用于填充 main.c,以便与另一个窗口对齐。

用vim内部启动对比的方法为:

:edit main.c:vertical diffsplit main.c

注意:对比的文件应该只能是备份件"加了符号~的"和其本身文件.其他的都不能进行有效对比.滚 动 绑 定(默认开启,不建议关闭)

当文件中有很多改动时,你可以用通常的方式滚动屏幕。Vim 会尽可能保持两个文件对

齐,以便你可以并排看到文件的区别。

如果暂时想关闭这个特性,使用如下命令:

:set noscrollbind

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~消 除 差 异(这个是最重要的!!所以我在这里全部贴过来并会注解)

消除差异其实就是说当你坐了一些更改以后,由于高亮显示和对比显示不能自动的同步更新,

所以需要手动的来处理问题,或者你需要在2个文件之间来回粘贴来转换.vi提供高效的方法.

你可以把文本从一个窗口移到另一个,并以此来消除差异,或者为其中一个文件中增加几

行。Vim 有时可能无法及时更新高亮显示。要修正这种问题,使用如下命令:

:diffupdate(手动更新)

要消除差异,你可以把一个高亮显示的块从一个窗口移动到另一个窗口。以上面的

"main.c" 和 "main.c~" 为例,把光标移到左边的窗口,在另一个窗口中被删除的行的位

置,执行如下命令:

:dp(用左边的文件做参考复制修改)

这将把文字从左边拷到右边,从而消除两边的差异。"dp" 代表 "diff put"。

你也可以反过来做:把光标移到右边的窗口,移到被 "改动" 了的行上,然后执行

如下命令:

:do(用右边的文件作参考复制修改)

这把文本从左边拷到右边,从而消除差异。

由于两个文件已经没有区别了,Vim 会把所有文字全部折叠起来。"do" 代表 "diff

obtain"。本来用 "dg" (diff get) 会更好。可是它已经有另外的意思了 ("dgg" 删除从

光标为止到首行的所有文本)。

################################################################################

标签页(我把杂项省略了~~说的是指定开启分割位置,感觉没太大必要)

你会注意到窗口永远不会重叠。这意味着屏幕空间很快会用完。这个问题的解决方法叫做

标签页。

这个标签页的形式我用网页的形式来说明最方便了.看官如果使用的是maxthon或者firefox的话,

应该都是有标签页的.就是在一个大的窗口下面打开子项目,保留其他项目的标签.十分方便.假设你正在编辑文件 "thisfile"。下面的命令可以建立新的标签页:

:tabedit thatfile

(下面出现的情况是在终端下面显示的,如果你使用的是独立的VI,

那么恭喜你,独立的标签页和网页形式一样了)

这会在一个窗口中编辑文件 "thatfile",这个窗口会占满整个 Vim 窗口。你会注意到在

顶部有一个含有两个文件名的横条:

+----------------------------------+

| thisfile | /thatfile/ __________X| (thatfile 用加粗字体出现)

|/* thatfile */ |

|that |

|that |

|~ |

|~ |

|~ |

| |

+----------------------------------+

现在,你拥有了两个标签页。第一个是文件 "thisfile" 的窗口,第二个是文件

"thatfile" 的窗口。这就像是两张重叠的纸,它们所带的的标签露在外面,显示其文件

名。

现在,使用鼠标单击顶端的 "thisfile"。结果是

+----------------------------------+

| /thisfile/ | thatfile __________X| (thisfile 用加粗字体出现)

|/* thisfile */ |

|this |

|this |

|~ |

|~ |

|~ |

| |

+----------------------------------+

你可以通过单击顶端的标签切换标签页。如果没有鼠标或者不想用它,可以使用 "gt" 命

令。助记符:Goto Tab。

现在,让我们通过下面的命令建立另一个标签页:

:tab split

这会建立一个新的标签页,包含一个窗口,编辑和刚才所在窗口中的缓冲区相同的缓冲

区:

+-------------------------------------+

| thisfile | /thisfile/ | thatfile __X| (thisfile 用加粗字体出现)

|/* thisfile */ |

|this |

|this |

|~ |

|~ |

|~ |

| |

+-------------------------------------+

在任何打开窗口的 Ex 命令前面,你都可以放上 ":tab"。这个窗口在新标签页中打开。

另一个例子:

:tab help gt

它将在新的标签页中显示关于 "gt" 的帮助。

"tabonly" 命令

关闭除了当前标签页以外的所有标签页,除非其它标签页中的改变没有保存。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值