2011-04-18 6 views
6

В течение последних нескольких дней я заставлял себя переключаться с Textmate на Vim. по большей части, моя эффективность почти такая же после некоторой тяжелой конфигурации Vim. Один из аспектов моего рабочего процесса. Я не нашел замены для перетаскивания файлов в Textmate, где изображения будут преобразованы в теги img, и файлы будут преобразованы в запросы.vim размещение изображения

Как я могу динамически создать тег изображения и оператор include/require?

+0

Связанный: http://stackoverflow.com/questions/1693389/vim-browser-plugin-to-execute-commands-on-files/1696072#1696072 –

ответ

7

Я думал об этом автоматическом здании <img> с момента его переключения.

У Vim есть встроенное решение для одной части проблемы: механизм полного запуска позволяет вам завершить путь к файлу, который вы хотите включить.

Если вы начнете вводить строку типа «путь», скажем <img src="images/ - нажмите <C-x><C-f> для небольшого списка возможных завершений. В сочетании с плагином автоматического завершения, таким как ACP, и snipMate, процесс выполняется очень быстро.

Но это не помогает для width и height.

Возможное решения было бы использовать snipMate для <img> сниппета, используйте <C-x><C-f> для пути на изображении, в захватить путь и кормить его в какую-то утилиту командной строки, заполнить width и height атрибутов с его выходом.

EDIT

Оказывается, другие уже исследовали подобную дорогу, this script интересно, но это не работает должным образом с путями к файлам, содержащим пробелы. Here is a slightly modified version, который работает достаточно хорошо. This other one кажется очень крутым, но ему не хватает ключевого элемента.

END EDIT

ДРУГОЙ EDIT

Я добавил этот фрагмент в ~/.vim/bundle/snipMate/snippets/html.snippets (внимание отступа перед тем $ является <Tab>):

snippet img custom 
    ${1:`HTML_insertImg()`} 

, который работает хорошо, но присоединяет выход HTML_insertImg() с 0 следующим образом:

0<img src="future_timeline.png" width="612" height="6370" alt="" /> 

Это 0 является проблемой. Система, очевидно, не идеальна, но как только я избавлюсь от этого ворчания 0, он будет хорошо вписываться в остальную часть моего процесса на основе snipMate.

Кстати here is a second modified version сценария, который я использую.

END ДРУГОЙ EDIT

EXTENDED 12" RE-EDIT VERSION

С:

вы можете:

  • открытого NERDTree, выберите изображение и нажмите b иметь почти полный <img src="imagename.jpg" width="128" height="256" alt="" /> тега вставленного в позиции курсора в предыдущем окне
  • или, если Vim аромат позволяет, введите :IMG<CR>, чтобы открыть диалоговое окно выбора собственного файла, выбрал изображение и имел почти полный тег , вставленный в позицию курсора в текущем окне
  • или, если вы находитесь в терминале, введите :IMG path/to/file.jpg, чтобы получить почти полный код <img src="imagename.jpg" width="128" height="256" alt="" /> тег, вставленный в позицию курсора в текущем окне

Решение snipMate на самом деле не испечено прямо сейчас.

Благодаря Петру Маху и @Matteo Riva для фактического выполнения большей части работы.

И да, я, очевидно, не эксперт Vim.

END РАСПРОСТРАНЕНИЯ 12" RE-EDIT VERSION

+0

спасибо для подсказки автозавершения, действительно приятно, но размеры сложнее получить, чем имена файлов. Это то, что я ищу. –

+0

@matt ryan, я все еще сам Vim noob. На самом деле, найти решение для это было в моем списке TODO с тех пор, как мне кажется, мне нужно очистить свои регулярные выражения (не). – romainl

+0

тем временем я использую пакет идентификации следующим образом: $ ident -format "width = \ "% w \" height = \ "% h \" "background.png | pbcopy –

 Смежные вопросы

  • Нет связанных вопросов^_^