LINUX.ORG.RU

Vim и переформатирование исходного кода.


0

2

В общем задача стоит следующая: 1) есть исходный код, открытый в текущем буфере. Небходимо переформатировать весь буфер. Решается найденной в интернетах командой:

:%!astyle --(опции дописывайте сами)
Соответственно можно это при желании заремапить
 
map <F5> <ESC>:%!astyle --style=java <CR>
imap <F5> <ESC>:%!astyle --style=java <CR>
Все работает, все прекрасно.

2) раз уж мы можем перформатировать код во всем текущем буфере, возникает мысль - а всегда ли это нужно? Может стоит прикрутить форматирование только выделенного кусочка? Открываем .vimrc и пишем:

vmap <F5> хм... А что собственно говоря то пишем? 
В общем я не понял, как обозначить выделенный кусок текста. Есть ли возможность скормить выделение внешней программе и подставить результат обратно?

Ткните в подходящий мануал, правильный запрос в гугле и так далее. Ну или подскажите более прямой способ решения проблемы.

P.S.: Да, это Java. Да, в ViM. Нет, я не сошел с ума, я знаю про IDE, работал 9 месяцев в Eclipse, периодически запускаю нынче IDEA для каких то своих задачек мелких. Сейчас в рамках обучения надо пользоваться текстовым редактором, вот потихоньку накручиваю плюшки на ViM. Переформатирование важно, иногда все же удручает вручную форматировать.

★★★

Последнее исправление: TheKnight (всего исправлений: 1)

%

это значёк всего дипазона

.,+10!astyle по идее +10 строчек с текущего места

dimon555 ★★★★★
()

vmap <F5> :!astyle --style=java<CR>

Или в visual mode жмешь : (вим подставит '<,'>) !команда

nikodymus
()
Ответ на: комментарий от TheKnight

Не сработает( Увы, нажатие : приводит к ошибке

Хм... У меня работает. И в мапинге '<,'> не нужно, должно работать просто с :

nikodymus
()

Всем спасибо, использование astyle к диапазону приводит немного не к таким последствиям. Дальше буду разбираться.

TheKnight ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.