1

Уже несколько лет на работе я использую терминал GNOME и очень привык к этому. Я обычно организую свою работу, классифицируя каждую задачу на своем собственном виртуальном рабочем столе, затем в каждом виртуальном рабочем столе у меня есть несколько терминалов Gnome, каждый с несколькими вкладками терминала, большинство из которых имеют файл, открытый для редактирования.

Эта настройка действительно затрудняет мне перезагрузку, и когда я это делаю, это настоящая боль, пытаясь сохранить, какие файлы я открыл и где. Я посмотрел дальше в терминал GNOME, а также в Konsole, но, насколько я могу судить, ни одна из этих терминальных программ не может делать то, что я хочу. Я хочу иметь возможность сохранить сеанс в GNOME или Konsole, но когда я перезагружаю этот сеанс, файлы, которые ранее были открыты в VI, снова будут открыты в VI. Все, что они, похоже, делают сейчас, это просто перезагружают каталог, в котором я находился, но не открывают файл в VI.

Есть ли программа, способная сделать это, или, возможно, параметр, который мне не хватает ни в GNOME, ни в Konsole, который позволит автоматически открывать файлы, которые я открыл в VI перед закрытием сеанса?

3 ответа3

0

Вы пытались сохранить его на сессии?

:h session

лучше спросить на http://unix.stackexchange.com, однако я нашел несколько хороших ссылок в Интернете ... вы должны взглянуть на эти ссылки.

ссылка на stackoverflow - сохранение и восстановление состояния vim

конфигурация vim

все важные команды VI

0

С Vim вы можете запустить :mksession чтобы сохранить текущий сеанс, т. Е. Сопоставления , параметры, переменные, текущий каталог, вкладки, окна (и их макеты) и т.д. Это сохранит всю информацию о сеансе в файл в текущем каталоге с именем Session.vim (вы можете указать имя файла для команды :mksession если вы хотите сохранить разные сессии в разных файлах, например :mksession work-task.vim). Поскольку информация хранится в файле, она будет сохраняться после перезагрузки компьютера.

Чтобы восстановить сеанс при следующем запуске Vim, просто запустите :source Session.vim или :source work-task.vim

См. help session-file Vim для более подробной информации.

0

Следующее в вашем .vimrc сохранит сессии при выходе и восстановит их при запуске:

function! MakeSession()
  let b:sessiondir = $HOME . "/.vim/sessions" . getcwd()
  if (filewritable(b:sessiondir) != 2)
    exe 'silent !mkdir -p ' b:sessiondir
    redraw!
  endif
  let b:filename = b:sessiondir . '/session.vim'
  exe "mksession! " . b:filename
endfunction

function! LoadSession()
  let b:sessiondir = $HOME . "/.vim/sessions" . getcwd()
  let b:sessionfile = b:sessiondir . "/session.vim"
  if (filereadable(b:sessionfile))
    exe 'source ' b:sessionfile
  else
    echo "No session loaded."
  endif
endfunction

au VimEnter * nested :call LoadSession()
au VimLeave * :call MakeSession()

источник

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .