Указать, что я хочу сделать, это:
- если я создам
xxx.php
,#!/usr/bin/env php
будет первой строкой файла - если я создам
xxx.py
,#!/usr/bin/env python
будет добавлен первым.
Как я могу подойти к этому?Спасибо!
Указать, что я хочу сделать, это:
xxx.php
, #!/usr/bin/env php
будет первой строкой файлаxxx.py
, #!/usr/bin/env python
будет добавлен первым.Как я могу подойти к этому?Спасибо!
После некоторой поисковой работы я нахожу сообщение в SO, которое может решить мою проблему с помощью шаблонов.Надеюсь, это полезно для вас, ребята.
Создавайте шаблоны pythontmp.txt
и phptmp.txt
в несколько директорий (пример:~/.vim/templates/
), как показано ниже
#!/usr/bin/env python(php)
Добавьте следующие настройки в .vimrc
autocmd bufnewfile *.py :0r ~/.vim/templates/pythontmp.txt
autocmd bufnewfile *.php :0r ~/.vim/templates/phptmp.txt
Мне действительно нравится подход определения функции vim для выполнения работы, таким образом, становится намного проще делать более сложные вещи. Например, если вставленный текст зависит от имени файла, как это обычно делается в C/C++. Мой C/C++ выглядит так:
autocmd BufNewFile *.{h,hpp} call <SID>insert_c_gates()
...
function! s:insert_c_gates()
let gatename = <SID>get_gate_name()
execute "normal i#ifndef " . gatename
execute "normal o#define " . gatename
execute "normal Go#endif /* " . gatename . " */"
normal kk
endfunction
Функция get_get_name() формирует имя шлюза из имени редактируемого файла и на самом деле зависит от проекта, над которым я работаю, потому что некоторые проекты хотят, чтобы оно было отформатировано определенным образом.
Не уверен, что вы можете настроить vim для этого без посторонней помощи. Вы можете создать вспомогательный скрипт, чтобы сделать это для вас.
Предполагая, что среда Linux ... Этот скрипт проверит расширение файла и при необходимости создаст файл с заголовком перед вызовом vim.
#/bin/bash
type=`expr "\$1" : ".*\.\(.*\)"` # Check the file extension
case "$type" in
py)
interpreter=python;
;;
php)
interpreter=php;
;;
esac
if test ${interpreter+defined}; then echo "#!/usr/bin/env $interpreter" > $1 && /usr/bin/vim $1;
else /usr/bin/vim $1;
fi
Затем вы можете использовать псевдоним этого сценария для запуска вместо vim.
alias vim='/path/to/script.sh'
Существует множество плагинов, которые предлагают эту функцию. Некоторые даже позволяют автоматически выводить различные вещи или даже параметризировать заголовок в зависимости от папки, в которой вы создаете новый файл (mu-template).