Чтобы открыть файлы в уже существующем экземпляре Vim (в моем случае MacVim), я взял совет Дерека Вятта и добавил это в свой bash_profile:
alias mvim='mvim --remote-silent'
Это работает, пока я передаю mvim аргумент (mvim myFile
, mvim .
и т. д.), но если я запускаю mvim
сам по себе, я получаю сообщение об ошибке: Argument missing after: "--remote-silent"
Поэтому я заменил вышеуказанный псевдоним следующей функцией:
function mvim() {
if [ $# > 0 ] ; then
command mvim --remote-silent "$@"
else
command mvim
fi
}
Теперь, если я запускаю mvim
без аргумента, я получаю ту же ошибку и файл с именем 0
записывается в текущий каталог. Все по-прежнему хорошо, если я передаю аргументы mvim.
Что мне здесь не хватает, и как лучше всего справиться с этим?
Спасибо, Инго Каркат, за пояснения. Если кому-то интересно, вот как я справляюсь с этим сейчас:
function ivim {
if [ -n "$1" ] ; then
command mvim --remote-silent "$@"
elif [ -n "$( mvim --serverlist )" ] ; then
command mvim --remote-send ":call foreground()<CR>:enew<CR>:<BS>"
else
command mvim
fi
}
:<BS>
в конце ветки elif
просто очищает командную строку. Это кажется немного хакерским, но я не знаю, как еще этого добиться.