具有分屏选项的文本编辑器


26

是否有一个编辑器可以选择将屏幕“拆分”为两个或更多部分,而无需一次打开更多编辑器窗口就可以访问多个文件(可能带有文件树),以及如何做到这一点(这是什么?命令)。

我不知道自己是否清楚,但是“分屏”是描述我要实现的目标的唯一方法。我想用它来编程,需要打开多个文件进行编辑。请注意,如果vi和emacs能够做到这一点,我对它们来说都是新手。此外,如果必须通过终端编辑器完成此操作,那么无论屏幕大小如何,都可以在同一终端中完成此操作吗?


1
我知道您是专门询问编辑器而不是终端机的,但我想向未来的访问者指出:终端机模拟器terminator还具有分屏的功能:ctrl + shift + e将垂直分割并ctrl + shift + o水平分割(并ctrl + shift + t打开一个新选项卡)
卡洛斯·坎德罗斯(CarlosCampderrós)

@CarlosCampderrós我会记住这一点,谢谢!
2012年

1
@CarlosCampderrós:您还可以使用screen或tmux等多路复用器在其他终端仿真器中实现该功能。缺点当然是您必须记住首先运行它们,但是灵活性可能值得。
Phoshi 2012年

Answers:


38

vim 可以轻松做到这一点:

ctrl+ ws-分割视窗

ctrl+ ww-在Windows之间切换

ctrl+ wq-退出窗口

ctrl+ wv-垂直拆分窗口

:sp filename

filename在新缓冲区中打开并拆分一个窗口。

你也可以

vim -o file1 file2

以拆分屏幕布局打开文件。更换-o-O的垂直分割而不是水平。


4
或键入:help CTRL-W以查看所有拆分窗口操作。
伯恩哈德

1
哇,太好了!我也偶然发现了“:split”,但是它只能水平分割。您可以仅提供这是哪个版本的vim吗?谢谢!
2012年

@Eve我使用的是VIM(已通过Vi认证)7.3。

1
@Eve-您还可以使用它:vsplit来创建垂直分割,并且:split可以接受文件名或命令
没用

1
就像<C-w>h/ j / k / l将沿特定方向在窗口之间移动一样,<C-w>H/ J / K / L(大写)将沿该方向移动窗口。
Izkata 2012年

13

可以使用Emacs完成。它可以在GUI和终端模式下工作。您甚至可以拆分多次。以下是一些基本的按键组合:

Cx 2 将选定的窗口分成两个窗口,一个在另一个窗口上方(在下面分割窗口)。
Cx 3 将所选窗口拆分为两个并排放置的窗口(向右拆分窗口)。
C-Mouse-2 在窗口的模式行中,分割该窗口。

资料来源:http : //www.gnu.org/software/emacs/manual/html_node/emacs/Split-Window.html


1
对于不熟悉Emacs术语的任何人,值得注意的是,Emacs 窗口是许多其他编辑器称为屏幕面板的窗口。Emacs的框架就是别人所说的窗口(它被称为框架,因为窗口内它的框架由桌面装饰(标题栏和边框要么)或终端... 的Windows包含缓冲区(一些文本,通常是文件)。
Peter.O

1
@ Peter.O-不仅仅针对那些不熟悉Emacs的人...我使用Emacs已有5年以上了,无法解释它们之间的区别。我只是用它。
jordanm

11

使用vim,可以使用splitvsplit

第一个将水平分割,第二个将垂直分割。

CTRLw 然后浏览拆分屏幕。

您也可以使用标签。tabnew filename将在新标签页中打开文件名。您可以使用tabnext:tabprevious在选项卡之间导航。

我个人映射左箭头和右箭头以在选项卡之间导航:

map <right> :tabnext<CR>
map <left> :tabprevious<CR>
inoremap <right> <ESC>:tabnext<CR>a
inoremap <left> <ESC>:tabprevious<CR>a

1
此外,NERD_tree插件可用于在单独的拆分中显示目录树。(vim.org/scripts/script.php?script_id=1658
哈德

7

凯特

KDE高级文本编辑器功能非常强大。
它包含您在问题中描述的所有内容以及更多内容

你自己看:

屏幕截图

要拆分视图,请转到视图拆分视图。然后,您可以选择以下选项之一:

  • 垂直分割Ctrl+ Shift+ L
  • 拆分水平Ctrl+ Shift+ T
  • 关闭当前视图Ctrl+ Shift+ R

要获得此屏幕截图所示的布局,请单击“ 垂直分割”,单击底视图,然后单击“ 水平分割”

当然,可以通过拖动视图之间的边界(拆分器)来更改视图的边界。要在视图之间切换,请使用F8Shift+ F8

顺便说一下,凯特有一个所谓的VI模式设置配置凯特…编辑 →VI输入模式)。这样,用于视图拆分的快捷方式便与Vim中的快捷方式相同(请参见此答案)。


7

joeJoe的自己的编辑器)也可以做到这一点:

ctrl+ ko-水平分割窗口

ctrl+ kp-切换到上一个窗口

ctrl+ kn-切换到下一个窗口

ctrl+ ke-在当前窗口中打开新文件

ctrl+ kg-增加当前窗口的高度

ctrl+ kt-缩小当前窗口的高度

ctrl+ ki-隐藏当前窗口以外的所有窗口,再次按再次显示所有窗口

ctrl+ cctrl+ kx-关闭一个窗口




2

关于文件树,我个人将NERDtree与Vim一起使用。它需要病原体。我发现打开树(:NERDtree toggleiirc)的命令有点长,因此将其重新映射到<F2>。如果您正在一个项目中有很多目录中有很多文件的项目(想想Rails项目),那真的很好。

编辑:

NERDtree在Github上:https : //github.com/scrooloose/nerdtree

这是我在.vimrc中使用的重新映射: map <F2> :NERDTreeToggle<CR>


谢谢,我对此可能还有其他疑问。我保留的那些。;)
2012年

1

尽管您可以使用任何基于命令行的文本编辑器(例如,等等),但我在基于终端的环境中使用tmuxvim进行分屏编辑。nanoemacs

tmux“终端多路复用器”的缩写,它允许您创建具有多个终端的会话,这些会话在单独的“窗口”中运行,并在这些窗口中的“窗格”中运行,这是您拆分屏幕的原因。tmux包含在许多Linux和BSD发行版的存储库中。我发现这是最灵活的编码选项,因为我还可以添加包含终端的拆分和窗口,在这些终端中我可以编译代码并使用版本控制系统,例如git在进行代码编辑时。

这是一个示例,说明如何使用tmux和创建分屏编辑会话vim

首先打开一个终端。在下面$,从命令行发出以下编写的命令。这将使用中的默认键绑定tmux

  1. 开始一个新的tmux会话。在这里,我们进行一个称为“编码”的操作:

    $ tmux new -s coding

    tmux刚刚打开

  2. Ctrl+,b然后%进行垂直分割或"水平分割。

    垂直分割

    水平分割

  3. 您可以tmuxCtrl+,b然后按,在拆分之间移动(或用“窗格”表示)o

  4. 现在打开一个文本编辑器,其中包含您要在每个窗格中编辑的任何文件。在这里,我刚刚使用打开了两个文本文件vim,例如

    $ vim file1.txt

    切换窗格:Ctrl+ b后跟o

    $ vim file2.txt

    同时编辑两个文件

tmux极为先进,可以在一个窗口中以多种方式排列多个窗格,并vim允许您在选项卡中一次打​​开多个文本文件。我倾向于同时使用选项卡vim和窗格tmux来允许我同时进行编辑,版本控制和调试代码。如果您有时间投资于学习键盘的快捷键和功能,tmux那么它将是一个非常强大的开发环境。

开始的tmux备忘单:dayid的屏幕和tmux备忘单

在选项卡的教程vimVim的提示:使用标签


0

我个人会使用屏幕或tmux。两者都允许您打开多个面板,尽管我认为tmux比屏幕更擅长恢复多面板会话。如果从本地桌面会话断开连接然后再进行SSH连接,您还可以获得附加到会话的附加好处。您甚至还可以与其他用户共享会话以进行协作。


这是一个
不好的投票,

0

在和编辑器旁边vim,还有其他一些终端(tty)/ x终端仿真器编辑器,它们可以同时显示至少两个文件。可能不是最可爱的瑞士军刀,但无论如何学习曲线似乎都不是那么陡峭:emacsjoe

1)mcedit

是Midnight Commander(文本模式文件管理器, apt-get install mc在基于Debian的发行版中进行安装)的一部分。

麦迪

2)wpe \ xwpe

apt-get install xwpe在Dedbian发行版中可用。但是,似乎这是一个停止的保护措施。

pe

3)nfte \ efte

也可以通过访问eFTE apt-get install efte

efte

另一方面,对于X窗口,还有一些GUI“ diff”工具可能对此有用。在我的Linux Mint中,我至少有两个:

4)xxdiff

基于Qt的应用程序(apt-get install xxdiff

xxdiff

未测试且未显示,但也Fldiff使用Fast Light Toolkit(FLTK)存在,但部分灵感来自xxdiff。也在官方存储库中(apt-get install fldiff您可以自己进行测试)。同样适用于mgdiff

5)kdiff3

类似的KDE应用程序(apt-get install kdiff3)。

kdiff3


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.