Я можу відкрити оболонку за допомогою команди: shell у Vim, однак я не можу редагувати файл і одночасно використовувати оболонку.
Чи є спосіб розділити Vim на багато Windows (або вкладки) і відкрити оболонку в одній з них?
Я можу відкрити оболонку за допомогою команди: shell у Vim, однак я не можу редагувати файл і одночасно використовувати оболонку.
Чи є спосіб розділити Vim на багато Windows (або вкладки) і відкрити оболонку в одній з них?
Відповіді:
Neovim і Vim 8.2
підтримують це спочатку за допомогою :ter[minal]
команди.
Детальніше дивіться terminal-window
в документах.
vsplit term://bash
якщо ви використовуєте Neovim.
terminal
команда розбиває вікно і надає командній оболонці спеціального кольору на панелі стану вікна. Гладкий.
Ну, це залежить від вашої ОС - насправді я не тестував її на MS Windows - але Conque - один з найкращих плагінів там.
Насправді може бути і краще, але працює.
:vsp
або :sp
- розбиває vim на два екземпляри, але ви не можете використовувати: оболонку лише в одному з них.
Чому б не відобразити іншу вкладку терміналу, а не іншу вкладку vim. Якщо ідея вам сподобалася, ви можете спробувати її: Ctrl-shift-t.
і рухайтесь між ними за допомогою Ctrl - pageup
таCtrl - pagedown
Якщо ви хочете лише кілька команд оболонки, ви можете зробити будь-яку команду оболонки у програмі vim !
Наприклад :!./a.out
.
vim
магію шляху так::!./%
Ctrl
я думаю, ваша відповідь передбачає gnome-terminal або подібний емулятор.
Ви можете використовувати tmux
або screen
(друге вміє робити тільки горизонтальні розбиття без патча) для розділення терміналу. Але я не знаю, як мати один екземпляр Vim на обох панелях.
Якщо ви ще цього не дізналися, ви можете використовувати дивовижний плагін екрану .
Conque також винятковий, але мені здається, що екран набагато практичніший (наприклад, він не "засмічує" ваш буфер, і ви можете просто надсилати команди, які вам дуже потрібні після редагування їх у своєму буфері)
Я думаю, це досить давнє питання, але зараз у 2017 році. У нас є neovim, який є вилкою vim, яка додає термінальну підтримку.
Таким чином, виклик :term
відкриє вікно терміналу. Краса цього рішення на відміну від використання tmux (термінального мультиплексора) полягає в тому, що у вас будуть ті ж прив'язки вікон, що і у вашій vim
установці. neovim сумісний з vim, тому ви в основному можете скопіювати та вставити свій файл, .vimrc
і він просто працюватиме.
Більше переваг полягає в тому, що ви можете перейти в звичайний режим на відкритому терміналі і ви можете виконати основне копіювання та редагування. Це також дуже корисно для git здійснює занадто гадаю, оскільки все, що є у вашому буфері, ви можете використовувати в автоматичному заповненні.
Я оновлю цю відповідь, оскільки vim також планує випустити підтримку терміналів, ймовірно, у vim 8.1. Ви можете слідкувати за прогресом тут: https://groups.google.com/forum/#!topic/vim_dev/Q9gUWGCeTXM
Після його випуску я вважаю, що це більш досконала настройка, ніж використання tmux.
Не зовсім те, про що ви просите, але вас може зацікавити мій плагін vim-notebook, який дозволяє користувачеві зберігати фоновий процес живим і змусити його оцінювати частину поточного документа (і записувати вихід у документ). Він призначений для використання в документах у стилі зошита, що містять фрагменти коду, що підлягають оцінці.
Ви можете відкрити програму "екран", розділений екран, відкрити оболонку на одному і vim на іншому. Працює для мене.
Зараз я використовую tmux.
Установка: sudo apt-get install tmux Виконати: tmux
Ctrl + b, а потім Ctr +%: він розділяє вікно вашого терміналу на дві вертикальні половинки.
Ctrl + "стрілка вліво | стрілка вправо": переміщається між терміналами.