визуально отделить первые 80 символов каждой строки
Модератор: /dev/random
-
- Сообщения: 92
- ОС: Ubuntu
визуально отделить первые 80 символов каждой строки
Подскажите, можно ли сделать так, чтобы Vim рисовал вертикальную линию на всю высоту экрана (или что-то вроде того), к примеру, после 80 символа, которая служила бы напоминанием, что если текст выходит за эту линию, предпочтительнее перенести его часть на новую строку?
-
- Сообщения: 156
- Статус: Дракон-линуксоид
- ОС: Slackware Linux
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 понимаешь, что реестр - место, откуда нормальными не возвращаются.
-
- Сообщения: 132
- ОС: Slackware
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
-
- Администратор
- Сообщения: 5398
- ОС: 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-й символ попадает на синтаксически выделяемое ключевое слово. Может, кто ещё лучше предложит?
-
- Сообщения: 246
- ОС: Solaris, Debian, Ubuntu
Re: визуально отделить первые 80 символов каждой строки
KonishchevDmitry писал(а): ↑01.05.2008 18:11Подскажите, можно ли сделать так, чтобы Vim рисовал вертикальную линию на всю высоту экрана (или что-то вроде того), к примеру, после 80 символа, которая служила бы напоминанием, что если текст выходит за эту линию, предпочтительнее перенести его часть на новую строку?
Если подсветка не нравится, то можно просто ширину окна установить в 80:

Код: Выделить всё
:winsize 80 57
-
- Сообщения: 92
- ОС: Ubuntu
Re: визуально отделить первые 80 символов каждой строки
Спасибо за советы, но все-таки хотелось бы чего-то менее конфликтующего с поиском/подсветкой синтаксиса. Так что если кто-то предложит что-то по-лучше, буду очень благодарен. 

-
- Сообщения: 246
- ОС: Solaris, Debian, Ubuntu
Re: визуально отделить первые 80 символов каждой строки
KonishchevDmitry писал(а): ↑04.05.2008 20:02Спасибо за советы, но все-таки хотелось бы чего-то менее конфликтующего с поиском/подсветкой синтаксиса. Так что если кто-то предложит что-то по-лучше, буду очень благодарен.
Можно ещё макс ширину текста указать:
Код: Выделить всё
:set tw=80
-
- Сообщения: 355
- ОС: Gentoo
Re: визуально отделить первые 80 символов каждой строки
После некоторых ковыряний случайно натолкнулся на команду «:match». Получился такой код:KonishchevDmitry писал(а): ↑04.05.2008 20:02Спасибо за советы, но все-таки хотелось бы чего-то менее конфликтующего с поиском/подсветкой синтаксиса. Так что если кто-то предложит что-то по-лучше, буду очень благодарен.
Код: Выделить всё
" Добавить в .vimrc
highlight TooLongLine term=reverse ctermfg=Yellow ctermbg=Red
3match TooLongLine /.\%>81v/
-
- Сообщения: 403
- ОС: Fedora 10
Re: визуально отделить первые 80 символов каждой строки
ZyX
О! Мега фишка
Расскажу о ней в блоге про вим.
О! Мега фишка

-
- Сообщения: 92
- ОС: Ubuntu
Re: визуально отделить первые 80 символов каждой строки
Конфликтует... Если поместить курсор на круглую скобку, то подсветка исчезает во всем файле.ZyX писал(а): ↑05.06.2008 14:10После некоторых ковыряний случайно натолкнулся на команду «:match». Получился такой код:Ни с чем не конфликтует, если, конечно, не считать конфликтом то, что вместо подсветки синтаксиса часть строки начиная с 81 колонки выделяется жёлтым на красном фоне (ошибки выделяются белым на красном фоне, поэтому был взят жёлтый).Код: Выделить всё
" Добавить в .vimrc highlight TooLongLine term=reverse ctermfg=Yellow ctermbg=Red 3match TooLongLine /.\%>81v/
-
- Сообщения: 355
- ОС: Gentoo
Re: визуально отделить первые 80 символов каждой строки
Заметил. Изменить 3 на 2 в начале строки. Или вовсе убрать.KonishchevDmitry писал(а): ↑05.06.2008 18:12Конфликтует... Если поместить курсор на круглую скобку, то подсветка исчезает во всем файле.
-
- Сообщения: 92
- ОС: Ubuntu
Re: визуально отделить первые 80 символов каждой строки
О, спасибо, теперь работает. Правда только в Vim'e.ZyX писал(а): ↑06.06.2008 09:41Заметил. Изменить 3 на 2 в начале строки. Или вовсе убрать.KonishchevDmitry писал(а): ↑05.06.2008 18:12Конфликтует... Если поместить курсор на круглую скобку, то подсветка исчезает во всем файле.

-
- Сообщения: 132
- ОС: Slackware
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
-
- Сообщения: 355
- ОС: Gentoo
Re: визуально отделить первые 80 символов каждой строки
А
Код: Выделить всё
if a:len<0
echoerr "Отрицательная длина!"
return 1
endif
execute "match LongLines /\\%>".a:len."v.\\+/"
return 0
-
- Сообщения: 132
- ОС: Slackware
Re: визуально отделить первые 80 символов каждой строки
2 ZyX
спаибо, так намного проще
видимо думал слишком
строки обрабатываются где-то так
спаибо, так намного проще
видимо думал слишком

строки обрабатываются где-то так
Код: Выделить всё
>>> s = "%%%d\s"
>>> print s
%%%d\s
>>> s = "%%%d\s" % 10
>>> print s
%10\s
slackware - linux for human brains