Посмотреть доступные сниппеты для Snipmate (шпаргалка)

Есть ли способ проверить все доступные фрагменты snipMate? Как i <c-r><tab>, но с немного большей информацией?

Мне интересно:

  • строка, до которой он будет завершен.
  • При наличии описание или комментарий со сниппетом.

Какой-нибудь инструмент, который позволяет конвертировать в HTML, был бы фантастическим, но трюк с in-vim тоже был бы крут :)


person berkes    schedule 22.12.2011    source источник
comment
Вы много просите. Для этого вам может понадобиться модифицировать сам Snipmate.   -  person romainl    schedule 22.12.2011
comment
Для этого вы можете прочитать файлы сниппетов или использовать другой плагин, такой как 'neocomplcache', который поддерживает завершение сниппетов (хотя и с собственным движком сниппетов).   -  person tungd    schedule 23.12.2011


Ответы (2)


Нет

Честно говоря, я не считаю этот вариант очень полезным. Назначение фрагментов заключается в том, что они представляют собой фрагменты текста, которые вставляются при вводе короткого слова, поэтому вам не нужно вводить их полностью. . Это то, что вы знаете наизусть, просто не хотите печатать снова и снова.

Это не блоки кода в смысле полувизуального программирования, когда вы просто вставляете предопределенные блоки. К чему вы, похоже, и стремитесь.

Самый простой способ проверить фрагменты — просмотреть файлы фрагментов.

person Rook    schedule 23.12.2011
comment
У gmate (Gedit+множество плагинов) был такой скрипт на питоне. Он конвертировался в уценку и позволял мне делать печатные шпаргалки, что позволяло мне дойти до того момента, когда я знаю их наизусть. Мы не все рождаемся с такими знаниями, отпечатанными в наших мозгах ;) - person berkes; 23.12.2011
comment
@berkes - Правильно, поэтому вы открываете файл фрагмента и немного просматриваете. Возможно, введите несколько своих собственных. - person Rook; 26.12.2011

Это может помочь, а может и нет, но я собрал сценарий оболочки ls_snip, в котором будут перечислены фрагменты для различных типов файлов и любые предшествующие комментарии. Он никоим образом не интегрирован в vim и зависит от ОС * nix. Кроме того, работает только с файлами snippets/filetype.snippets, а не с файлами snippets/filetype/match.snippets. Вы можете взломать его отсюда по своему вкусу.

Поместите его в ls_snip в какой-нибудь каталог PATH и сделайте его исполняемым.

#! /bin/bash
list_snippets_for() {
  egrep "^snippet|^#" ~/.vim/snippets/$1.snippets | awk '/^#/ {comment = comment $0} /^snippet/ {print $0 "\t\t" comment; comment=""}'
}

if [ "$1" == "" ]
then
  echo "You must specify at least one file type as an argument to ls_snip"
  exit
fi

for filetype in "$@"
do
  echo `echo $filetype | awk '{print toupper($0)}'`
  list_snippets_for $filetype
  echo
done

Вот пример вывода

[lwoodson@lwoodson-mint-vb spike] [root@rva-lw] $ ls_snip javascript html
JAVASCRIPT
snippet proto       # Prototype
snippet fun     # Function
snippet f       # Anonymous Function
snippet if      # if
snippet ife     # if ... else
snippet t       # tertiary conditional
snippet switch      # switch
snippet case        # case
snippet for     # for (...) {...}
snippet forr        # for (...) {...} (Improved Native For-Loop)
snippet wh      # while (...) {...}
snippet do      # do...while
snippet :f      # Object Method
snippet timeout     # setTimeout function
snippet get     # Get Elements
snippet gett        # Get Element

HTML
snippet nbs     # Some useful Unicode entities# Non-Breaking Space
snippet left        # ←
snippet right       # →
snippet up      # ↑
snippet down        # ↓
snippet return      # ↩
snippet backtab     # ⇤
snippet tab     # ⇥
snippet shift       # ⇧
snippet control     # ⌃
snippet enter       # ⌅
snippet command     # ⌘
snippet option      # ⌥
snippet delete      # ⌦
snippet backspace       # ⌫
snippet escape      # ⎋
snippet doctype HTML 4.01 Strict        # Generic Doctype
snippet doctype HTML 4.01 Transitional      
snippet doctype HTML 5      
snippet doctype XHTML 1.0 Frameset      
snippet doctype XHTML 1.0 Strict        
snippet doctype XHTML 1.0 Transitional      
snippet doctype XHTML 1.1       
snippet docts       # HTML Doctype 4.01 Strict
snippet doct        # HTML Doctype 4.01 Transitional
snippet doct5       # HTML Doctype 5
snippet docxf       # XHTML Doctype 1.0 Frameset
snippet docxs       # XHTML Doctype 1.0 Strict
snippet docxt       # XHTML Doctype 1.0 Transitional
snippet docx        # XHTML Doctype 1.1
snippet html        
snippet xhtml       
snippet body        
snippet head        
snippet title       
snippet script      
snippet scriptsrc       
snippet style       
snippet base        
snippet r       
snippet div     
snippet movie       # Embed QT Movie
snippet fieldset        
snippet form        
snippet h1      
snippet input       
snippet label       
snippet link        
snippet mailto      
snippet meta        
snippet opt     
snippet optt        
snippet select      
snippet table       
snippet textarea        
snippet fcg     
person LanceW    schedule 26.11.2012