Текстовий редактор з розділеним екраном


26

Чи є редактор, який має можливість "розділити екран" на дві або більше частин, отримуючи доступ до більш ніж одного файлу (можливо, з деревом файлів), не відкриваючи більше вікон редактора одразу, і як би це зробити (що таке команди).

Я не знаю, чи я зрозумів, але "розділений екран" - це єдиний спосіб описати те, чого я хочу досягти. Я хочу використовувати його для програмування, маючи для редагування більше одного файлу. Зауважте, що я досить новачок як у vi, так і у emacs, якщо вони здатні це робити. Крім того, якщо це потрібно зробити через редактор терміналів, чи можна це зробити в одному терміналі, незалежно від розміру екрана?


1
Я знаю, що ви спеціально запитали про редакторів, а не про термінали, але я думаю, що це варто відзначити майбутнім відвідувачам: емулятор терміналу terminatorтакож має функцію розділеного екрана: ctrl + shift + eрозділиться вертикально і ctrl + shift + oрозділиться горизонтально (а також ctrl + shift + tвідкриє нову вкладку)
Карлос Кампдеррос

@ CarlosCampderrós Я буду пам'ятати про це, дякую!
Єва

1
@ CarlosCampderrós: ​​Ви також можете використовувати мультиплексор, як екран або tmux, щоб досягти цього в інших емуляторах терміналів. Недоліком, звичайно, є те, що ви повинні пам'ятати, щоб запустити їх першими, але гнучкість, мабуть, того варта.
Phoshi

Відповіді:


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 Розділіть вибране вікно на два вікна, одне над іншим (розділене вікно-внизу).
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 років і не зміг би пояснити відмінності. Я просто цим користуюся.
Йорданм

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)

Щоб отримати макет, як на цьому знімку екрана, розділіть вертикальний , натисніть на подання знизу, а потім розділіть горизонтальний .

Звичайно, межі поглядів можна змінювати, перетягуючи межі (розколювачі) між ними. Для переключення між переглядами використовуйте + F8і .ShiftF8

До речі, у Kate є так званий VI режим ( НалаштуванняНалаштувати Kate…Редагування → VI Режим введення). Тоді ярлики для розбиття перегляду стають такими ж, як у Vim (див. Цю відповідь ).


7

joe( Власний редактор Джо ) також може це зробити:

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

ctrl+ kp- перехід до попереднього вікна

ctrl+ kn- перехід до наступного вікна

ctrl+ ke- відкрити новий файл у поточному вікні

ctrl+ kg- зростання висоти поточного вікна

ctrl+ kt- зменшення висоти поточного вікна

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

ctrl+ cабо ctrl+ kx- закрийте вікно



4

Якщо ви зацікавлені в тому, щоб трохи краще впоратися з VIM, ознайомтеся з vimcasts.org , у ньому є дуже багато дружніх відеоуроків. Це особливо для розділеної магії екрану

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


Це приємно, велике спасибі! Я би зробив це ще більше, але мені дозволено лише одне.
Єва

2

Щодо дерев файлів, я особисто використовую NERDtree з Vim. Це вимагає збудника. Я знайшов команду відкрити дерево ( :NERDtree toggle, iirc) трохи довгим, тому перезаписав його <F2>. Якщо ви працюєте над проектом з великою кількістю файлів у безлічі каталогів (думаю, що проекти Rails), це справді приємно.

Редагувати:

NERDtree є на Github: https://github.com/scrooloose/nerdtree

Це перекомпонування, який я використовую у своєму .vimrc: map <F2> :NERDTreeToggle<CR>


Дякую, у мене можуть виникнути інші запитання з цього приводу. Ті, які я резервую інший час. ;)
Єва

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. У вас навіть є можливість ділитися сеансом з іншими користувачами, а також для співпраці.


ось зворотний потік, оскільки ви не використовуєте зміну
Peterh каже відновити Моніку

0

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

1) mcedit

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

mcedit

2) wpe \ xwpe

Доступний apt-get install xwpeв дидбійських дистрибутивах. Однак, здається, це зупинений захист.

xwpe

3) nfte \ efte

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

efte

З іншого боку, для X-вікна також є деякі графічні інтерфейси, які можуть бути корисні для цієї мети. У моєму Linux Mint принаймні два:

4) xxdiff

Додаток на основі Qt ( apt-get install xxdiff)

xxdiff

Не перевірено і не показано, але існує також Fldiffза допомогою інструментарію швидких інструментів швидкого світла (FLTK), але частково натхнене в xxdiff. Також в офіційних сховищах ( apt-get install fldiffі ви можете самі протестувати). Те саме стосується і mgdiff.

5) kdiff3

Подібний додаток KDE ( apt-get install kdiff3).

kdiff3


0

Можна використовувати текстовий редактор атомів github. Він оснащений функцією розділеного екрана.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.