размещение изображений vim - PullRequest
7 голосов
/ 18 апреля 2011

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

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

1 Ответ

8 голосов
/ 19 апреля 2011

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

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

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

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

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

EDIT

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

END 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.

Кстати, вот вторая измененная версия используемого мной сценария.

END ANOTHER EDIT

EXTENDED 12 "REED EDIT VERSION

С:

Вы можете:

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

Решение snipMate сейчас не готово.

Спасибо Петру Маху и @ Matteo Riva за приводсоюзник делает большую часть работы.

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

КОНЕЦ РАСШИРЕНО 12 "ПЕРЕСМОТРЕННАЯ ВЕРСИЯ

...