Как временно выйти из Vim и вернуться назад

Как я могу выйти из Vim, а не :q, а затем вернуться, чтобы продолжить редактирование?

Ответ 1

Предполагая, что терминал Vim имеет вид * nix:

Чтобы приостановить ваш работающий Vim

Ctrl + Z

приостановит процесс и вернется к вашей оболочке

fg

возобновит (принесет f рудуг) ваш временно отстраненный Vim.

Для запуска новой оболочки

Запустите подоболочку, используя:

:sh

(в соответствии с настройками)

:set shell?

или

:!bash

с последующим:

Ctrl + D (или exit, но зачем так много печатать?)

убить снаряд и вернуться к Виму.

Ответ 2

Вы можете использовать :sh для выхода в оболочку по умолчанию, а затем ввести $ exit в командной строке, чтобы вернуться в Vim.

Ответ 3

Вы можете временно переключиться в режим оболочки:

:! <command>

таких как

:! ls

Ответ 4

Если вы работаете в системе Unix, Ctrl + Z приостановит работу Vim и даст вам оболочку.

Введите fg, чтобы вернуться. Обратите внимание, что Vim создает файл подкачки во время редактирования, и приостановка Vim не удалит этот файл (вы не выходите из Vim в конце концов). На тупых терминалах этот метод был довольно стандартным для циклов редактирования-компиляции-редактирования с использованием vi. Я только что узнал, что для меня gVim сводит к минимуму при наборе текста Z.

Ответ 5

Вы также можете сделать это с помощью :sus, чтобы попасть в оболочку и обратно с помощью fg.

Ответ 6

Есть несколько способов выйти из Vim и сделать все то же самое, когда вы вернетесь. В самом Vim есть очень хорошая документация, объясняющая, как это можно сделать. Вы можете использовать следующую команду в vim для доступа к соответствующей странице справки: :help usr_21

Чтобы дать вам краткое резюме, вот различные методы выхода и возврата с сохранением вашего сеанса:

  1. Приостановить и возобновить - Вы фактически не выходите из Vim с этим; Вы просто скрываете свою сессию в фоновом режиме, пока она вам не понадобится. Если вы перезагрузите свой компьютер или введете команду kill для Vim, вы потеряете сеанс. Это хорошо, если вы хотите временно переключиться на другую задачу, но если это так, то вы можете использовать вместо этого утилиту GNU Screen.

  2. Сессии - это верный способ сохранить ваш сеанс между экземплярами Vim. Даже если вы действительно выйдете из Vim, ваша сессия будет там для вас, когда вы вернетесь. Это, вероятно, то, что вы ищете.

Ответ 7

Чтобы расширить пользовательский ответ Zen, вы можете добавить следующую строку в файл ~/.vimrc, чтобы можно было быстро переключаться между Bash и Vim:

noremap <C-d> :sh<cr>

Ответ 8

Просто вставьте fg и вернитесь к своей последней приостановленной программе.

Ответ 9

Если вы используете Neovim, вы можете сделать следующее:

  • Команда :terminal для вызова окна терминала.
  • Сделайте свой терминал вещи
  • Введите exit, чтобы завершить процесс терминала
  • Нажмите любую клавишу, чтобы вернуться к Neovim

Ответ 10

Если вы не возражаете против использования мыши:

  • Запустите свой терминал,
  • выберите файл,
  • выберите Открыть вкладку.

Это создает новую вкладку в терминале, на которой вы можете запустить Vim. Теперь используйте вашу мышь, чтобы перейти к/от терминала. Я предпочитаю это вместо того, чтобы всегда печатать (:shell и выходить).