Ответ 1
- Обновить до MacVim 7.3
- Перейдите в Общие настройки
- В разделе "Открыть файлы из приложений:" выберите "в текущем окне
- В выпадающем меню под этой опцией выберите "и установите arglist"
Есть ли способ настроить MacVim для открытия нового файла в текущем окне в исполняемом экземпляре MacVim? В настоящее время у меня есть предпочтение MacVim "Открыть новые файлы в новой вкладке в текущем окне", но в идеале я просто хотел бы открыть новые файлы так: "e new_file" работает без вкладок.
Моя основная мотивация заключается в том, что я в настоящее время использую NERDTree и Bufexplorer для своего рабочего процесса и вообще не нуждаюсь в вкладках. Я также использую PeepOpen, который является удивительным, за исключением того, что он всегда открывает файлы на основе предпочтений MacVim, поэтому лучше всего я могу открыть его в текущем окне MacVim с новой вкладкой.
Вы также можете добавить:
alias mvim='open -a MacVim'
на ваш .bash_profile
Это кажется самым простым решением для меня.
Вы также можете рассмотреть этот вопрос при редактировании основного mvim script.
Эта модификация немного менее серьезная и также работает:
MacVim поддерживает вкладки, но, к сожалению, вызов `mvim несколько раз из командной строки приводит к открытию нескольких отдельных окон, вместо нескольких вкладок в одном окне. Я сделал следующее изменения в mvim script, чтобы исправить это.
Добавьте следующую строку в начало файла, под комментариями раздел:
tabs=true
Замените структуру if внизу файла следующим образом:
# Last step: fire up vim. if [ "$gui" ]; then if $tabs && [[ `$binary --serverlist` = "VIM" ]]; then exec "$binary" -g $opts --remote-tab-silent ${1:+"[email protected]"} else exec "$binary" -g $opts ${1:+"[email protected]"} fi else exec "$binary" $opts ${1:+"[email protected]"} fi
Очевидно, что это и немного субоптимальный b/c, вам придется поддерживать взломать, когда вы делаете обновление MacVim. Но они помогли мне собрать несколько файлов из терминала в новых вкладках Mac Vim.
Я лично использую такую команду, увидев все здесь и прибегая к экспериментированию с тем, что
mvim --help
.
Я обнаружил, что
mvim --remote-tab-silent foo.txt
работал у меня, а затем я вскоре добавил псевдоним к .profile
. Да, это barfs, если вы не кормите его файлом после опции, но кто все равно открывает пустой файл без имени?
@Ответ Björn Winckler показывает, как это сделать для файлов, открытых через поисковые механизмы и другие механизмы открытия ОС.
Если вы хотите, чтобы он работал с командой mvim, найдите файл mvim
и измените строки внизу
if [ "$gui" ]; then
# Note: this isn't perfect, because any error output goes to the
# terminal instead of the console log.
# But if you use open instead, you will need to fully qualify the
# path names for any filenames you specify, which is hard.
exec "$binary" -g $opts ${1:+"[email protected]"}
else
exec "$binary" $opts ${1:+"[email protected]"}
fi
к
if [ "$gui" ]; then
# Note: this isn't perfect, because any error output goes to the
# terminal instead of the console log.
# But if you use open instead, you will need to fully qualify the
# path names for any filenames you specify, which is hard.
#make macvim open stuff in the same window instead of new ones
if $tabs && [[ `$binary --serverlist` = "VIM" ]]; then
exec "$binary" -g $opts --remote ${1:+"[email protected]"}
else
exec "$binary" -g $opts ${1:+"[email protected]"}
fi
else
exec "$binary" $opts ${1:+"[email protected]"}
fi
Это приведет к тому, что все файлы, открытые из командной строки, будут открываться в том же окне.
Также, если вы хотите, чтобы файл открыл тот же буфер, если этот файл уже открыт вместо разделения или добавления новой вкладки
au VimEnter,BufWinEnter * NERDTreeFind
к вашему gvimrc (чтобы не вмешиваться в ваш обычный vim)
(эта последняя часть требует установки NERDTree)
Вот как я это сделал:
В VIM есть команда "tabo", которая делает текущую вкладку единственной вкладкой. Я добавил следующее к своему ~/.vimrc:
autocmd BufWinEnter,BufNewFile * silent tabo
Это делает так, что в любое время, когда я создаю новый буфер или вводя новый буфер, текущая вкладка автоматически становится единственной вкладкой. Эта команда не влияет на мои буферы, поэтому эффект - именно то, что я хочу: открыть файл в текущем экземпляре MacVim и не добавлять новые вкладки.
Я обнаружил, что Azriel отвечает на большие вопросы, но он не работает, если файл не существует. Эта небольшая функция делает то же самое, но вы также можете создавать новые файлы.
mvim () { touch "[email protected]" && open -a MacVim "[email protected]"; }
Просто добавьте его в .bash_profile
. Затем вы можете отредактировать новый файл foo
как
mvim foo
и он откроется на новой вкладке.