Текстовый редактор с возможностью разделения экрана

26

Есть ли редактор, который имеет возможность «разделить экран» на две или более частей, получая доступ к более чем одному файлу (возможно, с файловым деревом), не открывая больше окон редактора одновременно, и как это сделать (каковы команд).

Я не знаю, ясно ли я пояснил, но «разделенный экран» - единственный способ описать то, чего я хочу достичь. Я хочу использовать его для программирования, имея более одного файла, открытого для редактирования. Обратите внимание, что я довольно новичок как в vi, так и в emacs, если они способны на это. Кроме того, если это должно быть сделано через редактор терминала, может ли это быть сделано в том же терминале, независимо от размера экрана?

Ева
источник
1
Я знаю, что вы спрашивали конкретно о редакторах, а не о терминалах, но я думаю, что стоит отметить для будущих посетителей: эмулятор терминала terminatorтакже имеет функцию разделения экрана: ctrl + shift + eразделение по вертикали и ctrl + shift + oразделение по горизонтали (а также ctrl + shift + tоткроет новую вкладку)
Карлос Кампдеррос
@ CarlosCampderrós Я буду помнить об этом, спасибо!
Ева
1
@ CarlosCampderrós: ​​Вы также можете использовать мультиплексор, такой как screen или tmux, чтобы добиться этого в других эмуляторах терминала. Недостатком, конечно, является то, что вы должны помнить, чтобы запустить их в первую очередь, но гибкость, вероятно, того стоит.
Фоши

Ответы:

38

vim может легко сделать это:

ctrl+ ws- Сплит окна

ctrl+ ww- переключаться между окнами

ctrl+ wq- выйти из окна

ctrl+ wv- Разделить окна по вертикали

:sp filename

откроется filenameв новом буфере и разделит окно.

Вы также можете сделать

vim -o file1 file2

Чтобы открыть файлы в раскладке экрана. Замените -oна -Oдля вертикального разделения вместо горизонтального.

порыв
источник
4
Или введите, :help CTRL-Wчтобы увидеть все операции разделения окна.
Бернхард
1
Вау, отлично! Я также наткнулся на «: split», но он разбивается только по горизонтали. Не могли бы вы просто указать, какая это версия vim? Благодарность!
Ева
@ Ева я использую VIM (Vi IMproved) 7.3.
пик
1
@Eve - вы также можете использовать :vsplitдля создания вертикального разделения, и, как с :splitним, принимает имя файла или команду
Бесполезно
1
И как <C-w>h/ j / k / l будет перемещаться между окнами в определенных направлениях, <C-w>H/ J / K / L (с большой буквы) будет перемещать окно в этом направлении.
Изката
13

Это можно сделать с помощью Emacs. Работает в графическом интерфейсе и в режиме терминала. Вы даже можете разделить несколько раз. Вот несколько основных комбинаций клавиш:

Cx 2 Разделить выбранное окно на два окна, одно над другим (split-window-under).
Cx 3 Разделить выбранное окно на два окна, расположенных рядом (split-window-right).
C-Mouse-2 В строке режима окна разделите это окно.

Источник: http://www.gnu.org/software/emacs/manual/html_node/emacs/Split-Window.html

jordanm
источник
1
Для тех, кто не знаком с терминологией Emacs , стоит отметить, что окно Emacs - это то, что многие другие редакторы называют экраном или панелью . Фрейм Emacs - это то, что другие называют окном (это называется фреймом, потому что окна в нем обрамлены либо украшением рабочего стола (заголовок и границы), либо терминалом ... Окна содержат буферы (некоторый текст; обычно это файл).
Peter.O
1
@ Peter.O - Не только для тех, кто не знаком с Emacs ... Я использую Emacs уже более 5 лет и не смог бы объяснить различия. Я просто использую это.
Иордания
11

С 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
Люк М
источник
1
Кроме того, плагин NERD_tree можно использовать для отображения дерева каталогов в отдельном разделе. ( vim.org/scripts/script.php?script_id=1658 )
Бернхард
7

Катя

Расширенный текстовый редактор KDE очень полезен.
В нем есть все, что вы описали в вопросе и многое другое .

Посмотреть на себя:

Скриншот

Чтобы разделить вид, перейдите в ВидРазделить вид . Затем вы можете выбрать один из следующих вариантов:

  • Разделить по вертикали ( Ctrl+ Shift+ L)
  • Разделить по горизонтали ( Ctrl+ Shift+ T)
  • Закрыть текущий вид ( Ctrl+ Shift+ R)

Чтобы получить макет, как на этом скриншоте, Split Vertical , нажмите на вид снизу, а затем разделить по горизонтали .

Конечно, границы видов можно изменить, перетаскивая границы (разделители) между ними. Для переключения между представлениями используйте F8и Shift+F8 .

Кстати, у Кейт есть так называемый режим VI ( НастройкиНастроить Kate…Редактирование → Режим ввода VI). Тогда ярлыки для разделения вида становятся такими же, как в Vim (см. Этот ответ ).

Олег Припин
источник
7

joe( Собственный редактор Джо ) тоже может сделать это:

ctrl+ ko- разделить окно по горизонтали

ctrl+ kp- переключиться на предыдущее окно

ctrl+ kn- переключиться на следующее окно

ctrl+ ke- открыть новый файл в текущем окне

ctrl+ kg- увеличить высоту текущего окна

ctrl+ kt- высота сжатия текущего окна

ctrl+ ki- скрыть все окна кроме текущего, нажмите еще раз, чтобы снова показать все окна

ctrl+ cили ctrl+ kx- закрыть окно

SCAI
источник
4

Если вы заинтересованы в том, чтобы лучше разобраться с VIM, посетите vimcasts.org , там есть множество действительно полезных видеоуроков. Это особенно для магии разделенного экрана

Наслаждайтесь!

LWM
источник
Это хорошо, спасибо большое! Я бы до этого больше, но мне позволено только одно.
Ева
2

Что касается файловых деревьев, я лично использую NERDtree с Vim. Требуется патоген. Я обнаружил, что команда открыть дерево ( :NERDtree toggle, iirc) была немного длинной, поэтому я переназначил ее на <F2>. Если вы работаете над проектом с большим количеством файлов во многих каталогах (например, проект Rails), это действительно хорошо.

РЕДАКТИРОВАТЬ:

NERDtree находится на Github: https://github.com/scrooloose/nerdtree

Это переназначение, которое я использую в моем .vimrc: map <F2> :NERDTreeToggle<CR>

AlexWebr
источник
Спасибо, у меня могут быть другие вопросы по этому поводу. Те, что я оставляю за собой в другой раз. ;)
Ева
1

Я использую tmuxи vimдля редактирования разделенного экрана в терминальной среде, хотя для этого можно использовать любой текстовый редактор на основе командной строки (например nano,emacs и т. Д.).

tmuxсокращение от «терминальный мультиплексор» и позволяет создавать сеансы с несколькими терминалами, работающими в отдельных «окнах», а также «панелями» в этих окнах, которые позволяют разделить экран. tmuxвходит в репозитории многих дистрибутивов Linux и BSD. Я считаю, что это наиболее гибкий вариант для кодирования, так как я могу также добавить сплит и окна, содержащие терминалы, где я могу компилировать код и использовать систему контроля версий, как и в случае gitс моим редактированием кода.

Вот пример того, как я мог бы создать сеанс редактирования разделенного экрана, используя tmuxи vim.

Сначала откройте терминал. В приведенных ниже командах, написанных после $, выдаются из командной строки. Это использует привязки клавиш по умолчанию в tmux.

  1. Начните новый сеанс tmux. Здесь мы делаем один под названием «кодирование»:

    $ tmux new -s coding

    Tmux только что открылся

  2. Нажмите Ctrl+, bа затем либо %для вертикального разделения, либо "для горизонтального разделения.

    вертикальное разделение

    горизонтальное разделение

  3. Вы можете перемещаться между разделениями (или, по tmuxсути, «панелями»), нажимая Ctrl+ и bзатем o.

  4. Теперь откройте текстовый редактор с любыми файлами, которые вы хотите редактировать на каждой панели. Здесь я только что открыл два текстовых файла, используя vim, например,

    $ vim file1.txt

    Переключить панели: Ctrl+ с bпоследующим o.

    $ vim file2.txt

    редактирование двух файлов одновременно

tmuxявляется чрезвычайно продвинутым, позволяя создавать несколько панелей в одном окне, расположенными по-разному, и vimпозволяет открывать сразу несколько текстовых файлов на вкладках. Я склонен использовать как вкладки, так vimи панели, tmuxчтобы позволить мне редактировать, контролировать версии и отлаживать код одновременно. Если у вас есть время, чтобы инвестировать в изучение сочетаний клавиш и функцийtmux это может стать очень мощной средой разработки.

tmuxШпаргалка для запуска из: экран dayid и tmux шпаргалка

Учебник по вкладкам в vim: Советы по Vim: Использование вкладок

Джеймс Уомак
источник
0

Я лично использовал бы экран или Tmux. оба позволяют открывать несколько панелей, хотя я думаю, что tmux лучше восстанавливает многопанельный сеанс, чем экран. вы также получаете дополнительное преимущество возможности присоединяться к сеансу, если вы отключаетесь от локального сеанса рабочего стола и затем используете SSH. У вас даже есть возможность поделиться сеансом с другими пользователями, а также для совместной работы.

morggin
источник
вот отрицательный голос, потому что вы не используете shift
Петер говорит, что восстановите Monica
0

Кроме vim, emacsиjoe редакторы, вот некоторые другие терминальные (TTY) / х-терминальный эмулятор редакторов, которые могут показать , по крайней мере два файла одновременно. Может быть, не самые симпатичные швейцарские армейские ножи, но кривая обучения в любом случае кажется не слишком крутой:

1) македит

Является частью Midnight Commander (файловый менеджер в текстовом режиме, устанавливайте его apt-get install mcв дистрибутивах на основе Debian).

mcedit

2) wpe \ xwpe

Доступен apt-get install xwpeв дистрибутивах Dedbian. Тем не менее, кажется, что это перестало защищать.

xwpe

3) nfte \ efte

eFTE также доступен через apt-get install efte.

EFTE

С другой стороны, для X-окна также есть некоторые инструменты "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

Fran
источник
0

Вы можете использовать атомный текстовый редактор github. Это идет с функциональностью разделения экрана.

Göktuğ Aşçı
источник