2011-04-18 46 views
6

Trong vài ngày qua, tôi đã buộc mình phải chuyển từ Textmate thành Vim. cho hầu hết các phần, hiệu quả của tôi là khá nhiều giống nhau sau khi một số cấu hình Vim nặng. một khía cạnh của quy trình làm việc của tôi mà tôi chưa tìm thấy thay thế là kéo và thả tệp vào Textmate, nơi hình ảnh sẽ được chuyển thành thẻ và tệp img sẽ được chuyển thành yêu cầu cuộc gọi.vim vị trí hình ảnh

Tôi làm cách nào để tạo thẻ hình ảnh và câu lệnh bao gồm/yêu cầu?

+0

liên quan: http://stackoverflow.com/questions/1693389/vim-browser-plugin-to-execute-commands-on-files/1696072#1696072 –

Trả lời

7

Tôi đã nghĩ về việc tự động xây dựng <img> kể từ khi chuyển đổi.

Vim có giải pháp tích hợp cho một phần của sự cố: công cụ hoàn thành omni cho phép bạn hoàn thành đường dẫn của tệp bạn muốn đưa vào.

Nếu bạn bắt đầu nhập một chuỗi "giống như đường dẫn" - giả sử <img src="images/ - nhấn <C-x><C-f> để có danh sách ít các lần hoàn thành có thể có. Cùng với một plugin tự động hoàn thành như ACP, và snipMate quá trình này thực sự nhanh chóng.

Nhưng hoàn toàn không giúp ích gì cho widthheight.

Một giải pháp có thể sẽ được sử dụng cho snipMate đoạn <img>, sử dụng <C-x><C-f> cho con đường của hình ảnh, nắm bắt được con đường và thức ăn nó vào một số tiện ích dòng lệnh, điền vào widthheight thuộc tính với sản lượng của nó.

EDIT

Hóa ra những người khác đã khám phá một con đường tương tự, this script là thú vị nhưng nó không hoạt động đúng với đường dẫn tập tin có chứa khoảng trắng. Here is a slightly modified version hoạt động khá tốt. This other one dường như rất mát mẻ nhưng nó thiếu một phần quan trọng.

END EDIT

KHÁC EDIT

Tôi đã thêm đoạn mã này để ~/.vim/bundle/snipMate/snippets/html.snippets (chú ý sự thụt lề trước $ là một <Tab>):

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

mà hoạt động tốt nhưng prepends đầu ra của HTML_insertImg() với số 0 như sau:

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

Tuy nhiên, 0 này là một vấn đề. Hệ thống này rõ ràng là không hoàn hảo, nhưng một khi tôi sẽ loại bỏ điều này một chút dai dẳng 0 nó sẽ phù hợp khá độc đáo trong phần còn lại của quá trình dựa trên snipMate của tôi.

Bằng cách here is a second modified version của tập lệnh tôi sử dụng.

END KHÁC EDIT

EXTENDED 12" RE-EDIT VERSION

Với:

bạn có thể:

  • mở NERDTree, chọn một hình ảnh và nhấn b để có một gần như hoàn toàn <img src="imagename.jpg" width="128" height="256" alt="" /> thẻ dán tại vị trí con trỏ trong cửa sổ trước
  • hoặc, nếu hương vị Vim của bạn cho phép nó, nhập :IMG<CR> để mở hộp thoại chọn tệp gốc, chọn hình ảnh và có thẻ gần như hoàn thành <img src="imagename.jpg" width="128" height="256" alt="" /> được dán tại vị trí của con trỏ trong cửa sổ hiện tại
  • hoặc, nếu bạn đang ở nhà ga, nhập :IMG path/to/file.jpg để hoàn tất gần đúng <img src="imagename.jpg" width="128" height="256" alt="" /> thẻ được dán tại vị trí con trỏ trong cửa sổ hiện tại

Giải pháp snipMate không thực sự được nướng ngay bây giờ.

Nhờ Petr Mach và @Matteo Riva để thực sự thực hiện hầu hết công việc.

Và có, tôi rõ ràng không phải là chuyên gia Vim.

END EXTENDED 12" RE-EDIT VERSION

+0

nhờ cho lời khuyên hoàn thành tự động, thực sự tốt đẹp nhưng, kích thước là khó khăn hơn để có được hơn tên tập tin.đó là những gì tôi đang tìm kiếm –

+0

@ matt ryan, tôi vẫn là một Vim noob bản thân mình. Điều này đã được vào danh sách TODO của tôi kể từ tháng.Tôi sẽ cần phải chải lên kỹ năng regex của tôi (không), tôi nghĩ rằng – romainl

+0

trong khi chờ đợi tôi đang sử dụng các gói xác định như vậy: $ identification -format "width = \ "% w \" "background.png | pbcopy –

Các vấn đề liên quan