PostgreSQL coub express.js freeware git jquery laravel links linux macos mysql node.js php powershell python ubuntu vim virtualbox анекдот блог игры интересно стихи цитаты

Vim: поиск и замена строк в файле
October 22, 2013
Я пользуюсь этим в виме не часто пока и постоянно забываю как там танцуется эта замена, самый простенький вариант примерно такой: имеем файл пример с таким содержимым:
./folder1/folder2/file1.txt
./folder1/folder2/file2.txt
./folder1/folder2/file3.txt
./folder1/folder2/file4.txt
./folder3/folder5/file5.txt
./folder3/folder5/file6.txt
./folder3/folder5/file7.txt
./folder4/folder6/file8.txt
./folder4/folder6/file9.txt
./folder4/folder6/file10.txt
Допустим нужно отрезать из каждой строки все что касается пути, то есть чтобы остались только имена файлов. Переходим в командный режим и выполняем
:%s/\.\/.*\///gc
Выглядит довольно похабно, но в общем-то главное знать что искать. Синтаксис замены вообще примерно такой
:%s/serach-str/replace-str/g
search-str - то что ищем, replace-str - то на что заменяем, просто в примере выше использовано регулярное выражение и слешей много из-за обычного скрина точки и слешей. Модификатор c в примере означает что каждое найденное совпадение и соответственно его замену нам надо будет подтвердить, иначе все найденное в файле будет молча заменено.

Интересный нюанс: чтобы заменить что-то с переводом строки \n придется использовать \r то есть примерно вот так
:%s/\n/ -- \r/gc
Либо как вариант, тоже самое
# чтобы ввести ^M жмем (прямо в строке набора команды) Ctrl+v - Enter
:%s/\n/ -- ^M/gc
vim

Comments

No comments here yet.
You have to login to post a new comment.
aghr