Как зайти в Даркнет?!
25th January, 01:11
5
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
893
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
912
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4395
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Как создать короткие сниппеты в Vim?
Я недавно начал использовать Vim в качестве текстового редактора и в настоящее время работаю над своими собственными настройками.
Я предполагаю, что сопоставления клавиатуры могут делать практически все, но в настоящее время я использую их как своего рода средство для фрагментов почти исключительно.
Так, например, если я наберу def{TAB} ( :imap def{TAB} def ():<ESC>3ha ), он расширится до:
def |(): # '|' represents the caret
Это работает, как и ожидалось, но меня раздражает, когда Vim ждет полной команды, пока я набираю слово, содержащее "def", и не заинтересован в его расширении.
- Есть ли способ избежать этого или использовать эту функцию более эффективно с этой целью?
- Есть ли какая-либо другая функция Vim, которая лучше подходит для этого?
После быстрого просмотра SnippetsEmu, похоже, что это лучший вариант и гораздо проще настроить, чем я сначала думал.
Чтобы продолжить предыдущий пример:
:Snippet def <{}>():
После определения вы можете расширить свой фрагмент кода, введя def{TAB} .
Snipmate-как texmate :) http://www.vim.org/scripts/script.php?script_id=2540
видео: http://vimeo.com/3535418
snippet def
""" ${1:docstring} """
def ${2:name}:
return ${3:value}
В качестве еще одного предложения (хотя и немного отличающегося) использование встроенной функциональности vim:
:iabbrev def def(): #<LEFT><LEFT><LEFT><LEFT><LEFT>
Теперь всякий раз, когда вы набираете def, за которым следует пробел или другой несловный символ, он расширяется до того же самого, что вы дали в качестве вывода SnippetsEmu (пробел берется из пространства, которое вы ввели, чтобы вызвать завершение).
Этот подход не страдает проблемой "lag", с которой вы столкнулись при использовании :inoremap, и встроен в vim. Для получения дополнительной информации об этой функции смотрите :help abbrev .
Вы можете быть обеспокоены тем, что, будучи вызванным пробелом не tab, он будет срабатывать без необходимости, но в целом vim довольно умно о том, когда его запускать. Проблему можно дополнительно смягчить, включив аббревиатуру только для определенных типов файлов (например, python):
au filetype python :iabbrev ... etc
Snip[ets] (Менеджер / Эму|Мате/.vim), конечно, также является идеальным решением, но приятно осознавать альтернативы (особенно когда они встроены).
Если SnippetsEmu слишком тяжел или амбициозен для того, что вам нужно (это было для меня), я написал плагин, который управляет фрагментами на основе filetype. Он даже имеет табуляцию завершения при выборе фрагмента! :)
Получите его здесь: snippets.vim
Я только что установил UltiSnips . Есть хорошая статья, которая объясняет, почему вы можете выбрать UltiSnips: почему UltiSnips?
Я не использовал ни один из других плагинов сниппета; я решил сделать решительный шаг с одним, который казался полнофункциональным и мог бы приспособить меня, поскольку я получаю больше навыков Vim и хочу делать более сложные вещи.
Как отмечает MDCore, SnippetsEmu -это популярный скрипт Vim, который делает именно это и многое другое. Если вам нужно только развернуть (не перемещая назад каретку), вы можете использовать стандартную команду :ab[breviate] .
:ab[breviate] [<expr>] {lhs} {rhs}
add abbreviation for {lhs} to {rhs}. If {lhs} already
existed it is replaced with the new {rhs}. {rhs} may
contain spaces.
See |:map-<expr>| for the optional <expr> argument.