Но, как говорится, век живи, век учись. Так уж получилось, что последнее время пришлось много работать по ssh на удаленных серверах. А там и редактирование, и сборка, и запуск... В общем, несколько терминалов с ssh открыть, конечно, можно, да только слишком уж неудобно. Пришлось читать букварь :)
Оказалось, что текущий foreground процесс, выполняемый в терминале, можно приостановить нажатием клавиш
Ctrl+Z
. При этом процесс станет фоновым и освободит терминал для выполнения других команд. Чтобы продолжить выполнение процесса в фоновом режиме, нужно просто выполнить команду bg. Например:
> find / >foundfiles.txt
Нажимаем Ctrl+Z
[1]+ Stopped find / >foundfiles.txt
Процесс приостановлен. Теперь можно продолжить его выполнение в фоне, если нужно.
> bg
[1]+ find / >foundfiles.txt &
>
Теперь команда выполняется в фоновом режиме. А в терминале можно запускать чего-нибудь еще. Можно было запустить команду find сразу в фоновом режиме — эти варианты эквивалентны:
> find / >foundfiles.txt &
Но при работе с vim мне помогли другие волшебные команды — fg и jobs.
Предположим, нам нужно редактировать сразу три текстовых файла и закрывать редакторы после каждого редактирования совсем нежелательно:
> vim file1.txt
Нажимаем Ctrl+Z
[1]+ Stopped vim file1.txt
> vim file2.txt
Нажимаем Ctrl+Z
[2]+ Stopped vim file2.txt
> vim file3.txt
Нажимаем Ctrl+Z
[3]+ Stopped vim file3.txt
>
Сейчас все три открытых редактора приостановлены и находятся в ожидании дальнейших указаний. Можно посмотреть список фоновых задач с помощью команды jobs:
> jobs
[1] Stopped vim file1.txt
[2]- Stopped vim file2.txt
[3]+ Stopped vim file3.txt
Число в квадратных скобках — идентификатор фонового процесса. Символ "+" обозначает последний приостановленный процесс;
Теперь можно переключиться на любой из "висячих" vim'ов командой fg (команда bg означает background, а fg — foreground).
Запуск
fg
без параметров включит нам последний остановленный vim (тот, который помечен плюсиком). В данном случае, это vim с файлом file3.txt. Этого же эффекта можно добиться выполнив команду "fg +
".Запуск команды "
fg -
" переключит нас на предпоследний остановленный процесс, то есть на vim file2.txt.Также можно переключаться между процессами, используя их идентификатор. Например, "
fg 1
" или "fg 3
".Надо сказать, что мою unix'овую жизнь эти команды существенно облегчили. Жаль, что времени читать unix-букварь обычно не хватает :)
Спасибо, так же нет времени читать man'ы :) Случайно наткнулся, очень юзабельно :)
ОтветитьУдалитьПожалуйста :)
ОтветитьУдалитьдля всего этого в виме реалезованы буфферы, сплиты и табы (tabnew, split).
ОтветитьУдалитьТак что то что написано в статье виму совсем не нужно, однако прекрасно подойдет для других приложений)
Про сплиты - согласен, если экран не 80х40. А вот табами, имхо, пользоваться очень неудобно. Но это кто как привык...
ОтветитьУдалитьспасибо) очень ценная инфа
ОтветитьУдалитьспс
ОтветитьУдалитьнаконец то я понял как это работает )
ОтветитьУдалитьscreen имхо удобнее
ОтветитьУдалить