Как реализовать vim определенную историю оболочки - PullRequest
2 голосов
/ 08 января 2012

Есть ли способ иметь историю оболочки, специфичную только для определенного экземпляра vim.Например, наблюдайте эту последовательность событий как в оболочке vim (:sh), так и в другом терминале

   Vim (:sh)                  |    Terminal
------------------------------------------------
1  pdflatex foo.tex           |
2                             |   echo hello
3                             |   echo world  

, история команд для терминала и Vim:

1  pdflatex foo.tex
2  echo hello
3  echo world  

Есть лиВ любом случае, история команд для vim равна

1  pdflatex foo.tex

, а значение Terminal равно

1  echo hello
2  echo world  

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

1 Ответ

2 голосов
/ 08 января 2012

Bash хранит свою историю в ~/.bash_history по умолчанию.Это можно изменить с помощью переменной среды HISTFILE.Так что если вы хотите использовать отдельный файл истории при запуске bash в vim, вам придется установить другое значение на HISTFILE.Вы можете сделать это, создав специальный конфигурационный файл для bash, который будет использоваться при запуске из vim.Поэтому сначала создайте файл ~/.vimbashrc с этой одной строкой

export HISTFILE=~/.vim_bash_history

. Это скажет bash использовать ~/vim_bash_history в качестве файла истории.Вы также можете добавить больше, если хотите, чтобы другие параметры для оболочек запускались из vim.Затем в вашем .vimrc добавьте строку

set shell=/bin/bash\ --init-file\ ~/.vimbashrc

Параметр shell в vim сообщает ему, какую команду выполнять при использовании команд :! и команды :shell.Флаг --init-file указывает bash загрузить указанный файл конфигурации (он будет загружен после загрузки вашего обычного .bashrc).Так что теперь, когда вы запустите команду :sh, она запустит bash с этим файлом конфигурации, который настроит его на использование другого файла истории.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...