9

Я использую gvim с

set number

в моем .vimrc так что он показывает номер белья плюс пробел перед каждой строкой.

Если в документе менее 10 строк, это займет 2 столбца, если в нем более 10, 3 столбца и т.д.

Если я поставлю

set lines=40 columns=80

в .gvimrc он покажет 78 столбцов кода и 2 для белья с шагом, или 77 + 3 и так далее.

Мне бы хотелось, чтобы ширина окна была равна 80 столбцам + любое количество столбцов, необходимое для отображения номера белья.

Это не обязательно должно быть динамически, но я хотел бы иметь возможность прочитать количество строк в данном файле и установить columns соответствии с ними. (Конечно, динамическое решение было бы действительно аккуратным, но не обязательным)

3 ответа3

9

Попробуйте это в вашем ~/.vimrc:

au BufRead * let &numberwidth = float2nr(log10(line("$"))) + 2
          \| let &columns = &numberwidth + 80

Каждый раз, когда вы загружаете буфер (т. Е. Открываете файл), который будет определять количество столбцов, необходимых для отображения наибольшего номера строки, соответственно установите параметр «номерная ширина» и установите для «столбцов» это число плюс 80 для вашего текста. ,

2

я использую

set lines=24 columns=84

в моем $ HOME/.gvimrc, который дает мне то, что вы хотите. У меня редко (если вообще когда-либо) есть файлы, которые длиннее 999 строк, так что это работает для меня.

2

Я установил номер полосы, скажем, 5, а затем установил в столбцах 85 (80+5). Это должно быть хорошо для файлов от 0 строк до миллиона строк.

Вот что вам может понадобиться (по умолчанию) ~/.vimrc file

set numberwidth=5  "Good for files upto a million lines
set columns=85
set nu

Вы увидите, что номер строки отформатирован в «% 5d» (5 - это номерная ширина выше) вместо формата по умолчанию «% d», тратя немного ресурсов перед номерами строк, но сохраняя согласованность.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .