Как создать файл с именем file2.ext, если мой курсор находится внутри file2.ext. Вроде как gfтолько для создания новых файлов (это гипотетическая ситуация, просто подумал, что может быть когда-нибудь полезно).
Но есть чистое решение Vim, переносимое между платформами. Встроенная функция writefileзаписывает список в файл, строка за строкой. Естественно, когда список ввода пуст, он создает пустой файл. (Подробнее :help writefileсм.) Мы можем воспользоваться этим побочным эффектом:
Я взял превосходный ответ, изложенный выше, и расширил его следующим образом. Моя цель состояла в том, чтобы использовать vim для создания новых файлов разметки, необходимых для вики (в данном случае это Gollum wiki)
вышеупомянутое работает как указано в ответе. Однако сначала я подумал, что это не работает, потому что на самом деле я не видел открытия файла в vim. Использование второго фрагмента кода ниже откроет новый файл - это больше, чем я искал. Поэтому я объединил их и попробовал:
map <leader>cf :e <cfile><cr>
но это не работает для вики, потому что при попытке создать новый файл в вики с использованием синтаксиса, подобного [[the-new-file]]синтаксису вики, не допускается расширение файла в скобках. Однако Vim должен знать расширение при создании нового файла, чтобы это работало. В этом случае я использовал:
map <leader>cf :e <cfile>.md<cr>
чтобы я мог создавать новые файлы уценки. Существуют способы дальнейшей настройки этого (например, без жесткого расширения расширения), но вышеописанное прекрасно работает для моих нужд. Если мне когда-нибудь понадобится другое расширение (например, для сохранения файла .wiki), я, вероятно, просто выберу простой маршрут и создам другую карту, например:
map <leader>cwf :e <cfile>.wiki<cr>
В качестве дополнительного преимущества вы можете использовать ту же команду, чтобы открыть уже существующий файл уценки (стандартная gfкоманда не будет работать здесь, потому что отсутствует расширение файла).
gfработает если set suffixesadd=.wiki. Ваша улучшенная версия cfбудет соответствовать той, которая соблюдается suffixesadd, по крайней мере в том случае, если она содержит только один элемент.
<cfile>
вместо<C-r><C-f>
Я взял превосходный ответ, изложенный выше, и расширил его следующим образом. Моя цель состояла в том, чтобы использовать vim для создания новых файлов разметки, необходимых для вики (в данном случае это Gollum wiki)
Я впервые попробовал:
вышеупомянутое работает как указано в ответе. Однако сначала я подумал, что это не работает, потому что на самом деле я не видел открытия файла в vim. Использование второго фрагмента кода ниже откроет новый файл - это больше, чем я искал. Поэтому я объединил их и попробовал:
но это не работает для вики, потому что при попытке создать новый файл в вики с использованием синтаксиса, подобного
[[the-new-file]]
синтаксису вики, не допускается расширение файла в скобках. Однако Vim должен знать расширение при создании нового файла, чтобы это работало. В этом случае я использовал:чтобы я мог создавать новые файлы уценки. Существуют способы дальнейшей настройки этого (например, без жесткого расширения расширения), но вышеописанное прекрасно работает для моих нужд. Если мне когда-нибудь понадобится другое расширение (например, для сохранения файла .wiki), я, вероятно, просто выберу простой маршрут и создам другую карту, например:
В качестве дополнительного преимущества вы можете использовать ту же команду, чтобы открыть уже существующий файл уценки (стандартная
gf
команда не будет работать здесь, потому что отсутствует расширение файла).источник
gf
работает еслиset suffixesadd=.wiki
. Ваша улучшенная версияcf
будет соответствовать той, которая соблюдаетсяsuffixesadd
, по крайней мере в том случае, если она содержит только один элемент.