是否有一个编辑器可以选择将屏幕“拆分”为两个或更多部分,而无需一次打开更多编辑器窗口就可以访问多个文件(可能带有文件树),以及如何做到这一点(这是什么?命令)。
我不知道自己是否清楚,但是“分屏”是描述我要实现的目标的唯一方法。我想用它来编程,需要打开多个文件进行编辑。请注意,如果vi和emacs能够做到这一点,我对它们来说都是新手。此外,如果必须通过终端编辑器完成此操作,那么无论屏幕大小如何,都可以在同一终端中完成此操作吗?
是否有一个编辑器可以选择将屏幕“拆分”为两个或更多部分,而无需一次打开更多编辑器窗口就可以访问多个文件(可能带有文件树),以及如何做到这一点(这是什么?命令)。
我不知道自己是否清楚,但是“分屏”是描述我要实现的目标的唯一方法。我想用它来编程,需要打开多个文件进行编辑。请注意,如果vi和emacs能够做到这一点,我对它们来说都是新手。此外,如果必须通过终端编辑器完成此操作,那么无论屏幕大小如何,都可以在同一终端中完成此操作吗?
Answers:
vim
可以轻松做到这一点:
ctrl+ ws-分割视窗
ctrl+ ww-在Windows之间切换
ctrl+ wq-退出窗口
ctrl+ wv-垂直拆分窗口
:sp filename
将filename
在新缓冲区中打开并拆分一个窗口。
你也可以
vim -o file1 file2
以拆分屏幕布局打开文件。更换-o
用-O
的垂直分割而不是水平。
:help CTRL-W
以查看所有拆分窗口操作。
:vsplit
来创建垂直分割,并且:split
可以接受文件名或命令
<C-w>h
/ j / k / l将沿特定方向在窗口之间移动一样,<C-w>H
/ J / K / L(大写)将沿该方向移动窗口。
可以使用Emacs完成。它可以在GUI和终端模式下工作。您甚至可以拆分多次。以下是一些基本的按键组合:
Cx 2 将选定的窗口分成两个窗口,一个在另一个窗口上方(在下面分割窗口)。
Cx 3 将所选窗口拆分为两个并排放置的窗口(向右拆分窗口)。
C-Mouse-2 在窗口的模式行中,分割该窗口。
资料来源:http : //www.gnu.org/software/emacs/manual/html_node/emacs/Split-Window.html
使用vim,可以使用split
或vsplit
。
第一个将水平分割,第二个将垂直分割。
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
KDE高级文本编辑器功能非常强大。
它包含您在问题中描述的所有内容以及更多内容。
你自己看:
要拆分视图,请转到视图 → 拆分视图。然后,您可以选择以下选项之一:
要获得此屏幕截图所示的布局,请单击“ 垂直分割”,单击底视图,然后单击“ 水平分割”。
当然,可以通过拖动视图之间的边界(拆分器)来更改视图的边界。要在视图之间切换,请使用F8和Shift+ F8。
顺便说一下,凯特有一个所谓的VI模式(设置 → 配置凯特… → 编辑 →VI输入模式)。这样,用于视图拆分的快捷方式便与Vim中的快捷方式相同(请参见此答案)。
joe
(Joe的自己的编辑器)也可以做到这一点:
ctrl+ ko-水平分割窗口
ctrl+ kp-切换到上一个窗口
ctrl+ kn-切换到下一个窗口
ctrl+ ke-在当前窗口中打开新文件
ctrl+ kg-增加当前窗口的高度
ctrl+ kt-缩小当前窗口的高度
ctrl+ ki-隐藏当前窗口以外的所有窗口,再次按再次显示所有窗口
ctrl+ c或ctrl+ kx-关闭一个窗口
Sublime Text 2可以做到这一点(还有更多)。
关于文件树,我个人将NERDtree与Vim一起使用。它需要病原体。我发现打开树(:NERDtree toggle
iirc)的命令有点长,因此将其重新映射到<F2>
。如果您正在一个项目中有很多目录中有很多文件的项目(想想Rails项目),那真的很好。
编辑:
NERDtree在Github上:https : //github.com/scrooloose/nerdtree
这是我在.vimrc中使用的重新映射: map <F2> :NERDTreeToggle<CR>
尽管您可以使用任何基于命令行的文本编辑器(例如,等等),但我在基于终端的环境中使用tmux
和vim
进行分屏编辑。nano
emacs
tmux
“终端多路复用器”的缩写,它允许您创建具有多个终端的会话,这些会话在单独的“窗口”中运行,并在这些窗口中的“窗格”中运行,这是您拆分屏幕的原因。tmux
包含在许多Linux和BSD发行版的存储库中。我发现这是最灵活的编码选项,因为我还可以添加包含终端的拆分和窗口,在这些终端中我可以编译代码并使用版本控制系统,例如git
在进行代码编辑时。
这是一个示例,说明如何使用tmux
和创建分屏编辑会话vim
。
首先打开一个终端。在下面$
,从命令行发出以下编写的命令。这将使用中的默认键绑定tmux
。
开始一个新的tmux会话。在这里,我们进行一个称为“编码”的操作:
$ tmux new -s coding
按Ctrl+,b然后%进行垂直分割或"水平分割。
您可以tmux
按Ctrl+,b然后按,在拆分之间移动(或用“窗格”表示)o。
现在打开一个文本编辑器,其中包含您要在每个窗格中编辑的任何文件。在这里,我刚刚使用打开了两个文本文件vim
,例如
$ vim file1.txt
切换窗格:Ctrl+ b后跟o。
$ vim file2.txt
tmux
极为先进,可以在一个窗口中以多种方式排列多个窗格,并vim
允许您在选项卡中一次打开多个文本文件。我倾向于同时使用选项卡vim
和窗格tmux
来允许我同时进行编辑,版本控制和调试代码。如果您有时间投资于学习键盘的快捷键和功能,tmux
那么它将是一个非常强大的开发环境。
开始的tmux
备忘单:dayid的屏幕和tmux备忘单
在选项卡的教程vim
:Vim的提示:使用标签
在和编辑器旁边vim
,还有其他一些终端(tty)/ x终端仿真器编辑器,它们可以同时显示至少两个文件。可能不是最可爱的瑞士军刀,但无论如何学习曲线似乎都不是那么陡峭:emacs
joe
1)mcedit
是Midnight Commander(文本模式文件管理器,
apt-get install mc
在基于Debian的发行版中进行安装)的一部分。
2)wpe \ xwpe
apt-get install xwpe
在Dedbian发行版中可用。但是,似乎这是一个停止的保护措施。
3)nfte \ efte
也可以通过访问eFTE apt-get install efte
。
另一方面,对于X窗口,还有一些GUI“ diff”工具可能对此有用。在我的Linux Mint中,我至少有两个:
4)xxdiff
基于Qt的应用程序(apt-get install xxdiff
)
未测试且未显示,但也Fldiff
使用Fast Light Toolkit(FLTK)存在,但部分灵感来自xxdiff
。也在官方存储库中(apt-get install fldiff
您可以自己进行测试)。同样适用于mgdiff
。
5)kdiff3
类似的KDE应用程序(apt-get install kdiff3
)。
您可以使用github的atom文本编辑器。它具有分屏功能。
terminator
还具有分屏的功能:ctrl + shift + e
将垂直分割并ctrl + shift + o
水平分割(并ctrl + shift + t
打开一个新选项卡)