LINUX.ORG.RU

Свернуть комментарии в vim

 ,


0

3

При создании файла в vim туда автоматически добавляется текст лицензии, занимающий 25 строк. Какой самый простой способ сворачивать этот комментарий, чтобы постоянно не прокручивать вниз?

Похожий вопрос: я комментирую все функции, которые пишу, и комментарий может достигать 20 строк и более. Как сделать так, чтобы из всего комментария показывались 1-2 верхних строки, а остальные были свернуты по умолчанию?

Желательно сделать всё это наиболее простым способом без использования дополнительных плагинов.

Deleted

У меня в .vimrc так:

" сворачивание блоков кода 
set foldenable " отклключить фолдинг по умолчанию
set foldmethod=syntax " сворачивать на основе синтакса

peregrine ★★★★★ ()

для # комментариев работает:

autocmd FileType * set foldmethod=expr | set foldexpr=getline(v:lnum)=~'^\\s*#'
только для первых 25 строк и отображения нескольких строк, а потом сворачивания - нужно писать функцию, а для этого нужно кастовать отцов по VimL.

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

Не работаю с вебом, разве что css иногда поправить.

peregrine ★★★★★ ()

Самый простой способ — помимо текста лицензии добавлять в файл первой строкой

# vim: foldmethod=marker

а лицензию оборачивать в эти самые маркеры:

License {{{
...
}}}

С обширными комментариями — то же самое:

Краткий комментарий (одна строка) {{{
Развернутый комментарий
}}}
Zmicier ★★★★★ ()
Ответ на: комментарий от Zmicier

Впрочем, необходимость / недопустимость модлайнов — это предмет небольшого холивара из области этики работы в коллективе.

Zmicier ★★★★★ ()

Почему лицензия не может быть написана один раз в LICENSE? Ты думаешь марать ей каждый файл это так важно?

bj ()

Желательно сделать всё это наиболее простым способом без использования дополнительных плагинов.

Можно попробовать использовать метки. Читать в разделе folding.

andreyu ★★★★★ ()
Ответ на: комментарий от bj

Хотя бы потому, что используемая лицензия* прямо указывает так поступать.

*) Я разумеется не знаю, какая там у опа лицензия, может WTFPLv2, тогда ничего она не указывает, конечно. Но это маловероятно.

Zmicier ★★★★★ ()
Ответ на: комментарий от bj

Да-да, а также Апачевцы и X11’овцы. А бздуны-те не знают, что могут не страдать, и все-равно страдают.

WTFPL наше все!

Zmicier ★★★★★ ()
Ответ на: комментарий от Zmicier

Гг. Наличие текста в каждом сырце обуславливается только непомерным столманизмом. Ни одна из лицензий не содержит такого пункта, даже GPL. Это чисто рекомендательное «правило», чтобы сильнее защититься от «воров».

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

Наличие текста в каждом сырце обуславливается только непомерным столманизмом.

Ну-ну. Пойдите это расскажите, например, FreeBSD’шникам.

Ни одна из лицензий не содержит такого пункта

Не вполне верно. Как минимум, лицензии MIT (обе ключевые: Expat и X11 по меньше мере) содержат такой пункт в основной части: «The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software». Что понимать под «substantial portions» — дело, конечно, ваше, но авторы X11 понимают под ними каждый файл.

чтобы сильнее защититься от «воров»

Вы, конечно, можете жить в понятийной системе, где люди, заимствующие у вас свободный код называются «ворами»; но я бы предпочел не осложнять жизнь тем из них, кто захочет позаимствовать только часть файлов, необходимостью за меня прописывать мои копирайты — мне же это сделать много проще.

Zmicier ★★★★★ ()
Ответ на: комментарий от Zmicier

Вы, конечно, можете жить в понятийной системе, где люди, заимствующие у вас свободный код называются «ворами»; но я бы предпочел не осложнять жизнь тем из них, кто захочет позаимствовать только часть файлов, необходимостью за меня прописывать мои копирайты — мне же это сделать много проще.

Мой мир гораздо проще, в нем копирайт не равен тексту полной лицензии ))

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

Почему лицензия не может быть написана один раз в LICENSE?

Может быть, согласен. Но бывают отдельные файлы, где всё же хотелось бы указать её.

Deleted ()
Ответ на: комментарий от Zmicier

Почему лицензия не может быть написана один раз в LICENSE?

Собственно да, лицензия вот такая. http://opensource.org/licenses/BSD-2-Clause

Кстати, правильно я понимаю, что можно положить ее в 1 файл LICENSE, а в файлах с кодом писать:

/*
 * Copyright (C) Ivan Ivanov
 */

? И этого будет вполне достаточно?

Но все равно есть небольшие, но значимые программы, где придется ее вписывать. shall или must не столь важно, т.к. решение добровольное. И всё равно, вопрос касается вообще больших комментариев, в т.ч. лицензии, а не только лицензии.

Deleted ()
Последнее исправление: Deleted (всего исправлений: 2)
Ответ на: комментарий от bj

Мой мир гораздо проще, в нем копирайт не равен тексту полной лицензии ))

«Copyright notice не равен», об этом мы говорим, да? Согласен. Я тоже не понимаю, зачем бэ-эс-дэшники прописывают полный текст лицензии в каждый файл. GNU’шный сopyright notice, который вы почему-то так ненавидите, он короче.

Zmicier ★★★★★ ()
Ответ на: комментарий от bj

Shall это не must. Но не переживай, английский сейчас мало кто знает.

Я за вас и не переживаю — ничего страшного в том, чтоб не знать, что в юридическом английском «shall» — это хоть и не «must», но все-равно долженствование (а вовсе не допустимость по желанию), действительно нет.

Zmicier ★★★★★ ()
Ответ на: комментарий от Deleted

а в файлах с кодом писать:
Copyright (C) Ivan Ivanov
И этого будет вполне достаточно?

IANAL, но насколько я понимаю само по себе это означает то же, что «Copyright (C) Ivan Ivanov. All rights reserved», т. е. проприетарщину. Уж лучше ничего не писать.

Zmicier ★★★★★ ()

При создании файла в vim туда автоматически добавляется текст лицензии, занимающий 25 строк. Какой самый простой способ сворачивать этот комментарий, чтобы постоянно не прокручивать вниз?

function! FoldLicense()
    silent! 1,25fold
endfunction
autocmd FileType * call FoldLicense()

Вдруг если лицензия начинается не с 1 по 25 строку или начинается не с первой, то лучше:

function! FoldLicense()
    silent! 1,/Начало текста лицензии/;/Конец текста  лицензии/fold
endfunction
autocmd FileType * call FoldLicense()
Если лицензий несколько, добавляешь еще соотв. строки для этих лицензий.

VimCasts ()
Ответ на: комментарий от Deleted

И вообще, я бы не стал тут самодеятельничать. У публичных лицензий есть инструкции, как их применять — им и надо следовать. Поскольку вы решили применить частную (не предназначенную для широкого использования), остается только ориентироваться на «эталон» — на крупный проект, для которого эта лицензия изначально писалась.

Как я уже здесь говорил, в BSD (во всех, вроде бы) в тех файлах, где copyright notice есть, он содержит в себе полный текст лицензии.

Zmicier ★★★★★ ()
Ответ на: комментарий от peregrine

это не сильно зависит от типа цпу. на моем i5-3550 CPU @ 3.30GHz большой java файл (где много фолдов) редактировать просто невозможно. foldmethod marker спасает.

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