can3p: (Default)

При всем великолепии vim’а есть еще плюшки, которые не устают радовать глаз. Одна из них – это поиск и замена в файлах.

Искать можно как вперед ( / ), так и назад( ? ), сразу искать слово под курсором( * ), перемещаться по результатам поиска как туда ( n ), так и обратно( N )

С заменой все тоже очень богато. Можно заменять отсюда и до конца строки/параграфа/текста, так же и наоборот, между определенными строками, на определенное количество строк и т.д.(http://vim.wikia.com/wiki/Search_and_replace). Можно заменить в выделенном блоке текста( выделить и нажать v ).

Самое прекрасное – это то, что везде можно использовать регулярные выражения.
Например, в xml файле есть куча тегов <transition>blablabla</transition>, которые занимают несколько строк. Удалить можно одним махом:

:%s/<transition>\_.\{-}<\/transition>//g

Здесь \_ – это любой символ, включая символы новой строки, \{-} – это нежадный аналог оператора * в других диалектах.

Использованная литература:
Regular Expression matching more than a single line in Vim
Vim Regular Expressions


Оригинал: http://blog.dpetroff.ru/tech/vim_search_replace

% и vim

Mar. 4th, 2011 02:12 am
can3p: (Default)

Меня давно угнетало, что, в vim повторялся следующий шаблон:

находимся в папке ~/someproject
Начинаем работу: cd ~/someproject && gvim some/deep/file1.txt
Предположим, что в той же папке лежит файл file2.txt

Раньше я всегда набирал для file2 путь полность, т.к. до этого путь вводился через командную строку.

И вот, оказывается, что в vim есть спецрегистр %, который содержит имя текущего буфера. В итоге набор сократился до краких:

$ cd ~/someproject
$ gvim some/deep/file1.txt

А теперь делаем в редакторе: :e %C-W C-W C-W
И все, красота!


Оригинал: http://blog.dpetroff.ru/tech/vim_filename_buffer

Profile

can3p: (Default)
can3p

April 2017

S M T W T F S
      1
2 3 45678
9101112131415
16171819202122
23 242526272829
30      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 17th, 2025 05:24 pm
Powered by Dreamwidth Studios