визуально отделить первые 80 символов каждой строки
Модератор: /dev/random
- KonishchevDmitry
- Сообщения: 92
- ОС: Ubuntu
- Контактная информация:
визуально отделить первые 80 символов каждой строки
Подскажите, можно ли сделать так, чтобы Vim рисовал вертикальную линию на всю высоту экрана (или что-то вроде того), к примеру, после 80 символа, которая служила бы напоминанием, что если текст выходит за эту линию, предпочтительнее перенести его часть на новую строку?
Re: визуально отделить первые 80 символов каждой строки
Код: Выделить всё
" Add info about filename and date of creation
map <F3> :exe "normal! o//File: ".bufname("%")<CR>:exe "read !LC_TIME='us' date +\"//Created: \\%d \\%b, \\%Y\""<CR>:exe "normal! oAuthor: h0rr0rr_drag0n "<CR>:exe "normal! oDescription: "<CR>
Вот, сделал как и хотел. Подставляет так:
//File: test.cpp
//Created: 02 May, 2008
//Author: h0rr0rr_drag0n
//Description:
После каталога /etc понимаешь, что реестр - место, откуда нормальными не возвращаются.
Re: визуально отделить первые 80 символов каждой строки
KonishchevDmitry писал(а): ↑01.05.2008 18:11Подскажите, можно ли сделать так, чтобы Vim рисовал вертикальную линию на всю высоту экрана (или что-то вроде того), к примеру, после 80 символа, которая служила бы напоминанием, что если текст выходит за эту линию, предпочтительнее перенести его часть на новую строку?
можно выделять 80 колонку на каждой строке, которая больше 80 символов:
Код: Выделить всё
/.\{79}\zs.
Vim tip: Highlight text beyond 80 columns
slackware - linux for human brains
- /dev/random
- Администратор
- Сообщения: 5289
- ОС: Gentoo
Re: визуально отделить первые 80 символов каждой строки
nonstop писал(а): ↑04.05.2008 08:44KonishchevDmitry писал(а): ↑01.05.2008 18:11Подскажите, можно ли сделать так, чтобы Vim рисовал вертикальную линию на всю высоту экрана (или что-то вроде того), к примеру, после 80 символа, которая служила бы напоминанием, что если текст выходит за эту линию, предпочтительнее перенести его часть на новую строку?
можно выделять 80 колонку на каждой строке, которая больше 80 символов:
Код: Выделить всё
/.\{79}\zs.
Vim tip: Highlight text beyond 80 columns
Это будет сбрасываться при каждом поиске. А также неправильно работать с табами.
Лучше так:
Код: Выделить всё
:syn match Error /\%79v.*/
или так:
Код: Выделить всё
:syn match Error /\%79v./
Правда, и этот вариант не без изъяна. Он не работает, если 80-й символ попадает на синтаксически выделяемое ключевое слово. Может, кто ещё лучше предложит?
Re: визуально отделить первые 80 символов каждой строки
KonishchevDmitry писал(а): ↑01.05.2008 18:11Подскажите, можно ли сделать так, чтобы Vim рисовал вертикальную линию на всю высоту экрана (или что-то вроде того), к примеру, после 80 символа, которая служила бы напоминанием, что если текст выходит за эту линию, предпочтительнее перенести его часть на новую строку?
Если подсветка не нравится, то можно просто ширину окна установить в 80:
Код: Выделить всё
:winsize 80 57
- KonishchevDmitry
- Сообщения: 92
- ОС: Ubuntu
- Контактная информация:
Re: визуально отделить первые 80 символов каждой строки
Спасибо за советы, но все-таки хотелось бы чего-то менее конфликтующего с поиском/подсветкой синтаксиса. Так что если кто-то предложит что-то по-лучше, буду очень благодарен.
Re: визуально отделить первые 80 символов каждой строки
KonishchevDmitry писал(а): ↑04.05.2008 20:02Спасибо за советы, но все-таки хотелось бы чего-то менее конфликтующего с поиском/подсветкой синтаксиса. Так что если кто-то предложит что-то по-лучше, буду очень благодарен.
Можно ещё макс ширину текста указать:
Код: Выделить всё
:set tw=80
Re: визуально отделить первые 80 символов каждой строки
После некоторых ковыряний случайно натолкнулся на команду «:match». Получился такой код:KonishchevDmitry писал(а): ↑04.05.2008 20:02Спасибо за советы, но все-таки хотелось бы чего-то менее конфликтующего с поиском/подсветкой синтаксиса. Так что если кто-то предложит что-то по-лучше, буду очень благодарен.
Код: Выделить всё
" Добавить в .vimrc
highlight TooLongLine term=reverse ctermfg=Yellow ctermbg=Red
3match TooLongLine /.\%>81v/
Re: визуально отделить первые 80 символов каждой строки
ZyX
О! Мега фишка Расскажу о ней в блоге про вим.
О! Мега фишка Расскажу о ней в блоге про вим.
- KonishchevDmitry
- Сообщения: 92
- ОС: Ubuntu
- Контактная информация:
Re: визуально отделить первые 80 символов каждой строки
Конфликтует... Если поместить курсор на круглую скобку, то подсветка исчезает во всем файле.ZyX писал(а): ↑05.06.2008 14:10После некоторых ковыряний случайно натолкнулся на команду «:match». Получился такой код:Ни с чем не конфликтует, если, конечно, не считать конфликтом то, что вместо подсветки синтаксиса часть строки начиная с 81 колонки выделяется жёлтым на красном фоне (ошибки выделяются белым на красном фоне, поэтому был взят жёлтый).Код: Выделить всё
" Добавить в .vimrc highlight TooLongLine term=reverse ctermfg=Yellow ctermbg=Red 3match TooLongLine /.\%>81v/
Re: визуально отделить первые 80 символов каждой строки
Заметил. Изменить 3 на 2 в начале строки. Или вовсе убрать.KonishchevDmitry писал(а): ↑05.06.2008 18:12Конфликтует... Если поместить курсор на круглую скобку, то подсветка исчезает во всем файле.
- KonishchevDmitry
- Сообщения: 92
- ОС: Ubuntu
- Контактная информация:
Re: визуально отделить первые 80 символов каждой строки
О, спасибо, теперь работает. Правда только в Vim'e. GVim вообще ничего не подсвечивает.ZyX писал(а): ↑06.06.2008 09:41Заметил. Изменить 3 на 2 в начале строки. Или вовсе убрать.KonishchevDmitry писал(а): ↑05.06.2008 18:12Конфликтует... Если поместить курсор на круглую скобку, то подсветка исчезает во всем файле.
Re: визуально отделить первые 80 символов каждой строки
И снова насчет подсветки длинных строк.
Написал вот такого монстрика - подсвечивает сколько надо (по заданной длине)
например так:
подсветит окончания строк за 100м символом
собственно вот:
PS:
как обойтись без python, к сожалению, не осилил
Написал вот такого монстрика - подсвечивает сколько надо (по заданной длине)
например так:
Код: Выделить всё
MatchLongLines 100
подсветит окончания строк за 100м символом
собственно вот:
Код: Выделить всё
hi LongLines guibg=#88e088 guifg=#000000 gui=none
python << EOF
def matchLongLines(len):
pattern = "/\%>" + str(len) + "v.\+/"
vim.command(("match LongLines %s") % pattern)
EOF
function! s:match_long_lines(len)
execute ":py matchLongLines(".a:len.")"
endfunction
command -nargs=1 MatchLongLines call s:match_long_lines(<f-args>)
PS:
как обойтись без python, к сожалению, не осилил
slackware - linux for human brains
Re: визуально отделить первые 80 символов каждой строки
А
Код: Выделить всё
if a:len<0
echoerr "Отрицательная длина!"
return 1
endif
execute "match LongLines /\\%>".a:len."v.\\+/"
return 0
Re: визуально отделить первые 80 символов каждой строки
2 ZyX
спаибо, так намного проще
видимо думал слишком
строки обрабатываются где-то так
спаибо, так намного проще
видимо думал слишком
строки обрабатываются где-то так
Код: Выделить всё
>>> s = "%%%d\s"
>>> print s
%%%d\s
>>> s = "%%%d\s" % 10
>>> print s
%10\s
slackware - linux for human brains