Как получить каталог Vim «смотрит в»? Я хочу настроить свою независимую платформу vimrc
, поэтому я не хочу размещать явные каталоги. В Linux, например. vim смотрит на ~/.vim
и на Windows в ~\vimfiles
. Как я могу получить каталог, который используется, чтобы поместить туда мои файлы?Получение каталога Vim для файла vimrc
ответ
Я не могу сказать, что это информация, которая нам никогда не нужна, поскольку я использую ее для этого.
В ЛХ-ВИМ-Lib, я продолжу этот путь (в lh#path#vimfiles()):
- Сначала я построить регулярное выражение от $ HOME (то есть я заменить все слеши и backslahes в
[/\\]
)::let regex = substitute($HOME, '[/\\]', '[/\\\\]', 'g')
. - Затем я добавляю возможные каталоги:
let regex .= '\(vimfiles\|.vim\)'
- И я, наконец, я ищу мое регулярное выражение в & РПТ. Самый короткий результат - хороший.
:let paths = filter(split(&rtp, ','), 'match(v:val, regex) != -1')
+:return paths[lh#list#arg_min(paths, function('len'))]
Примечание: Реальный код немного более сложное, общее и устойчивое (/ устойчивость?) К ошибкам.
PS: из-за cygwin, тестирование на has('win32')
не достаточно.
EDIT: меня попросили предоставить определение lh#list#arg_min()
. Его можно найти в lh-vim-lib. Его определение довольно прост и немного громоздко (IMO)
function! lh#list#arg_min(list, ...) abort
if empty(a:list) | return -1 | endif
let Transfo = a:0 > 0 ? a:1 : function(s:getSNR(id))
let m = Transfo(a:list[0])
let p = 0
let i = 1
while i != len(a:list)
let e = a:list[i]
let v = Transfo(e)
if v < m
let m = v
let p = i
endif
let i += 1
endwhile
return p
endfunction
Слишком много скобок после '& rtp' (я не могу его отредактировать, видимо, мне пришлось бы менять больше символов). Можете ли вы, возможно, также дать определение 'lh # list # arg_min', я не смог его найти. – DerWeh
Действительно спасибо. Я сделал исправление. Что касается 'arg_min', это не так сложно, но все же немного громоздко. Это определение доступно здесь: https://github.com/LucHermitte/lh-vim-lib/blob/master/autoload/lh/list.vim#L430 –
Вы можете изменить настройки по умолчанию 'runtimepath'
, чтобы Vim использовать тот же ~/.vim/
на Windows, тоже. Просто положите это в свой ~/.vimrc
:
if has('win32') || has('win64')
let &runtimepath = substitute(&runtimepath, '\C\V' . escape($HOME.'/vimfiles', '\'), escape($HOME.'/.vim', '\&'), 'g')
endif
- 1. VIM для окон не загружает vimrc файла из текущего каталога
- 2. Vim Только Подчеркивая ~/.vimrc
- 3. Vim .vimrc custom location
- 4. Как создать репозиторий git для каталога и файла вне каталога?
- 5. Vim -: helptags in .vimrc?
- 6. настройки Sourcing Vim внутри .vimrc
- 7. Vim alias для изменения каталога
- 8. Объяснение файла vimrc по умолчанию для версии Windows vim
- 9. vim плагин для каталога/открытого файла
- 10. Активация файла `.vimrc`
- 11. Vim treatment vimrc, если папка
- 12. Vim настройки - .vimrc - отображение ключей
- 13. Поиск файла конфигурации (vimrc?) Для VimR OSX
- 14. .vimrc для плагина vim IntelliJ Idea
- 15. Синтаксис Vim для уценки в .vimrc
- 16. Vim Выделите Поиск в vimrc
- 17. netbeans jvi vimrc расположение файла
- 18. Запустить vim без vimrc/change vimrc с открытыми файлами
- 19. Получение каталога файла задач для относительных путей
- 20. Как изменить местоположение .vimrc и .vim
- 21. Vim iabbrev в моем vimrc не работает
- 22. Как запустить функцию плагина vim от vimrc?
- 23. .vim /: Нет такого файла или каталога
- 24. Выясните ВИМ имя исполняемого файла в vimrc
- 25. Что такое грамматика vimrc, как использовать переменную, функцию в vimrc?
- 26. Получение каталога файла в Unix
- 27. Как настроить .vimrc свой собственный тип файла?
- 28. Почему ~/.vimrc не работает для vim на сервере ubuntu
- 29. Получение каталога входного файла (Applescript)
- 30. Почему мы должны набирать vim ~/.vimrc и почему не просто vim ~ .vimrc?
Ответ более сложный, чем вы ожидаете. Существует несколько релевантных каталогов, и некоторые из них жестко закодированы. Подробнее см. ': H startup'. См. Также вывод 'vim -version'. –
Где вам нужна папка vim в вашем '.vimrc'? Я просто проверил свой '.vimrc', и единственное место, где я его использую, - это временные файлы. Можете ли вы немного уточнить, что такое вариант использования? – pfnuesel
Во-первых, это также временные файлы. Я сохраняю 'undo' и' backup' файлы в подкаталогах '.vim'. Другими вещами являются мои плагины. Я использую «vim-plug» и вам нужно указать папку. Я хочу, чтобы все это было в одной папке, и я могу просто поместить свою папку .vim в GitHub и синхронизировать ее, а также с системами, не имеющими Git. – DerWeh