Як тимчасово вийти з Vim та повернутися назад


302

Як я міг вийти з Vim, ні :q, а потім повернутися, щоб продовжувати редагування?

Відповіді:


570

Припускаючи термінал Vim на смак * nix:

Щоб призупинити роботу вашого Vim

Ctrl + Z

призупинить процес і повернеться до вашої оболонки

fg

відновить (довести до е руди г раунду) припиненого Vim.

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

Запустіть передплату за допомогою:

:sh

(як налаштовано)

:set shell?

або

:!bash

далі:

Ctrl+ D(або exit, але навіщо так багато вводити?)

щоб вбити снаряд і повернутися до Вім.


5
psщоб переглянути процеси переднього плану unix.stackexchange.com/questions/6115/…
Влад

1
Що робити, якщо я хочу продовжувати працювати на сервері під час редагування файлу. Наприклад, скажімо, що я nodemon app.js(nodemon оновлює сервер для редагування файлів для вас), і тоді я хочу повернутися до редагування vim. Чи можу я це зробити без двох окремих вікон терміналів?
Коста

5
або jobsвідвідати процеси переднього плану з (для мене) більш читаним заголовком. Потім, наприклад, fg %2для вибору другого.
ізоморфізми

Якщо це не працює для вас і control-zдіє як "скасувати", перевірте свій vimrc, щоб перевірити, чи behave mswinє він. Якщо його видалити, він control-zзапрацює
16-16

3
у Windows ви можете повернутися до vim, якщо наберетеexit
JonnyRaa

107

Ви можете використовувати :shдля виходу до своєї оболонки за замовчуванням, після чого введення $ exitв підказці оболонки поверне вас до Vim.


1
Я б хотів, щоб я міг посилити цю заяву. Саме тому: оболонка існує.
Ренді Морріс

8
Якщо бути справедливим, іноді потрібно одне і те ж середовище, а не середовище під оболонки. Отже, якщо ви шукаєте зміни змінних оточуючих середовищ, коли ви виходите з Vim повністю, вам потрібно CTRL-z /: sus.
Танго Браво

Можна використати, $ psщоб дізнатися, чи ми знаходимося в підрозділі vim перед тим, як дзвонити, $ exitщоб уникнути випадкового закриття терміналу. Знайшов це тут (я не пробував індикатор підказки, згаданий на веб-сайті).
Даніель


14

Якщо ви перебуваєте в системі Unix, Ctrl+ Zпризупинить роботу Vim та надасть вам оболонку.

Наберіть, fgщоб повернутися назад. Зауважте, що Vim створює файл підкачки під час редагування, а призупинення роботи Vim не видалить цей файл (ви все-таки не виходите з Vim). На тупих терміналах цей метод був досить стандартним для циклів редагування-збирання-редагування за допомогою vi . Я щойно дізнався, що для мене gVim мінімізує набір тексту Z.


13

Ви також можете зробити це, :susпотрапивши в оболонку і назад fg.


5

Існує кілька способів вийти з Vim і мати все те саме, коли ви повернетесь. В самій Vim є дуже хороша документація, яка пояснює різні способи цього зробити. Ви можете використовувати таку команду vim для доступу до відповідної довідкової сторінки::help usr_21

Щоб отримати короткий підсумок, ось різні способи закриття та повернення із сеансом неушкодженими:

  1. Призупинити та відновити - Ви фактично не киньте Vim із цим; ви просто ховаєте сеанс на задньому плані, поки вам це не потрібно. Якщо ви скинете комп'ютер або видасте команду kill на Vim, ви втратите сеанс. Це добре для тих випадків, коли ви хочете тимчасово перейти на інше завдання, але якщо це так, то ви можете замість цього скористатися утилітою GNU Screen .

  2. Сеанси - це вірний спосіб збереження сеансу між екземплярами Vim. Навіть якщо ви справді кинете Vim, ваш сеанс буде для вас, коли ви повернетесь. Це, мабуть, те, що ви шукаєте.


5

Для розширення користувальницького Zen відповіді «S , ви можете додати наступний рядок в ~/.vimrcфайл для швидкого перемикання між Bash і Vim:

noremap <C-d> :sh<cr>

через п'ять років я просто хотів би зазначити, що використання Cd - це, мабуть, погана порада, оскільки це замінює поведінку Vim за замовчуванням. за замовчуванням вікно переходу ctrl-d у бік буфера. дивіться vimdoc.sourceforge.net/htmldoc/scroll.html#CTRL-D
xaa

3

Просто fgвведіть і поверніться до останньої призупиненої програми.


3

Якщо ви використовуєте Neovim , ви можете зробити наступне:

  • :terminal команда піднести вікно терміналу.
  • Робіть свої термінали
  • Введіть, exitщоб вбити термінальний процес
  • Натисніть будь-яку клавішу, щоб повернутися до Neovim

0

Якщо ви не заперечуєте проти використання миші:

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

Це створює нову вкладку на терміналі, на якій можна запустити Vim. Тепер за допомогою миші перейдіть до / з терміналу. Я вважаю за краще це замість того, щоб завжди вводити ( :shellі виходити).

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