Как отобразить нумерацию строк в nano при открытии файла

Есть ли способ указать nano автоматически отображать нумерацию строк каждый раз, когда я открываю файл?

Комбинация клавиш для отображения текущего номера строки во время использования nano - это CTRL+C.

В качестве альтернативы, для отображения позиции номера строки и столбца вы можете просто использовать -c параметр при запуске nano, т.е.:

nano -c [filename]

Чтобы сделать это постоянным, nano использует конфигурацию в вашей домашней папке ~/.nanorc

Таким образом, чтобы всегда отображать номера строк при использовании nano...

nano ~/.nanorc

(не волнуйтесь, если он пуст - этот файл по умолчанию не существует)

тип set constantshow

N.B. устаревший синтаксис set const показано в анимации

Сохранить

enter image description here


animation1

Поскольку вы используете номера строк, помните, что вы можете использовать ALT+G чтобы перейти к определенному номеру строки.

Случайно нашел хороший короткий путь: Alt+#, что в некоторых раскладках клавиатуры можно сделать с помощью Alt+Shift+3.

click me gently

1 лайк

Согласно справочной странице GNU nano 2.9.3 (также проверенной в версии 4.8), у вас есть два варианта автоматического открытия с отображением номеров строк и один для их включения / выключения после открытия nano:

Флаги командной строки

Вы можете использовать -l или --linenumbers флаги.

       - я, -- яв числах              Отобразите номера строк слева от текстовой области.

напр.
nano -l foo.txt
nano --linenumbers foo.txt

Через конфигурационный файл(ы)

В качестве альтернативы, согласно справочной странице nanorc, вы можете добавить set linenumbers в ~/.nanorc, $XDG_CONFIG_HOME/nano/nanorc или ~/.config/nano/nanorc.

инициализация файл       нано прочитает два файла конфигурации: сначала системный nanorc (если он существует), а затем пользовательский nanorc (если он существует), либо ~/.nanorc       или $XDG_CONFIG_HOME/нано/нанорк или ~/.конфигурация/нано/нанорк, в зависимости от того, что встретится первым.  Видеть нанорк(5) для получения дополнительной информации о возможном содержимом этих файлов.
       набор номера строк          Отобразите номера строк слева от текстовой области.

Таким образом, содержимое моего файла ~/.nanorc просто:

 1 комплект номера строк 2

С помощью привязки клавиш

Не совсем то, о чем просил OP, но для полноты картины вы также можете включать / выключать номер строки с помощью привязки клавиш по умолчанию (начиная с версии 4.8) Alt+N.

В качестве альтернативы вы можете повторно привязать этот ключ с помощью упомянутого метода man file:

ПОВТОРНАЯ ПРИВЯЗКА ключи       Привязки клавиш можно изменить с помощью следующих трех команд:          связывать меню ключевых функций Повторно привязывает заданную клавишу к заданной функции в данном меню (или во всех меню, где функция существует, когда все используется).
Формат ключа должен быть одним из:          ^X, где X - латинская буква или один из нескольких символов ASCII (@, ], \, ^, _), или слово "Космос".  Пример: ^C.          M-X, где X - любой символ ASCII, кроме [, или слова "Пробел".  Пример: М-8.          Ш-М-X, где X - латинская буква.  Пример: Sh-M-U.  По умолчанию каждое нажатие клавиши Meta+letter выполняет то же самое, что и соответствующее нажатие Shift+Meta+letter.  Но когда будет произведена любая привязка Shift + Meta, это больше не будет иметь место для всех букв.          FN, где N - числовое значение от 1 до 24.  Пример: F10.  (Часто, F13 к F24 может быть набран как F1 к F12 со сдвигом.)          В это или Из. Повторная привязка  (Ввод) или  (Вкладка), вероятно, не очень хорошая идея.  На некоторых терминалах невозможно выполнить повторную привязку  (если только -- сырой используется), потому что его код ключа идентичен коду клавиши Backspace.       Допустимыми именами функций, которые должны быть привязаны, являются:...линиячисла            Переключает отображение номеров строк перед текстом.

Что касается альтернативных конфигурационных файлов:

В ответ на комментарии по поводу альтернативных конфигурационных файлов, из описания man nanorc:

Во время запуска, нано  сначала прочитает общесистемные настройки, начиная с /и т.д./nanorc (точный путь может отличаться в вашей системе), а затем настройки, зависящие от конкретного пользователя, либо из  ~/.nanorc  или из $XDG_CON‐ FIG_HOME/нано/нанорк или от ~/.config/nano/nanorc, в зависимости от того, что встретится первым.

Обычно я бы не советовал другим изменять общесистемный конфигурационный файл, если у вас нет для этого веских причин, поскольку он, скорее всего, будет перезаписан во время любых обновлений и вряд ли будет включен в системные резервные копии, которые обычно включают только домашний каталог.

Использование с sudo

Как отметил один из комментаторов, это может сработать не так, как ожидалось, если вам придется использовать sudo с nano, например sudo nano myFile. Это потому, что когда вы используете sudo, вы делаете все, что приходит после sudo как "суперпользователь", отсюда и название (суперпользователь do..). Если вы отредактировали свой конфигурационный файл, не являющийся суперпользователем (например ~/.nanorc или /home/myUserName/.nanorc) это не будет запущено, когда вы используете sudo, так как вы не используете nano как myUserName больше. Таким образом, у вас есть несколько вариантов.

  1. Самое простое - это просто использовать -l установите флажок, и он будет работать как есть.
  2. Скопируйте содержимое вашего ~/.nanorc к /root/.nanorc поскольку это представляет собой домашний каталог для суперпользователя. Предполагая, что у вас есть свой ./nanorc настройка файла так, как вам нравится, и у вас еще нет /root/.nanorc файл, то вы можете просто запустить sudo cp /home/myUserName/.nanorc /root/. Обратите внимание, что это приведет к перезаписи любого существующего файла nanorc в /root и вы должны заменить myUserName своим фактическим именем пользователя. Я не тестировал, но я бы предположил, что вы не можете использовать оператор тильды, то есть `sudo cp ~ /.nanorc / root/as it would likely interperet this to be/ root`, а не ваше имя пользователя, как опять же, вы говорите ему "суперпользователь делает cp из домашнего каталога".

Скомпилировать Nano из исходного кода:

git clone git://git.savannah.gnu.org/nano.git;cd nano;./autogen.sh;./configure;sudo make install 

Затем добавьте следующее в свой .nanorc файл:

set linenumbers

Вы можете использовать Meta+# чтобы включать и выключать номера строк внутри Nano.

Если nano -c filename не работает, используйте nano filename затем Ctrl +_. Он запросит у вас номер строки для перехода.

Если вы уже открыли файл с помощью nano, вы нажимаете

Ctrl+w+t

(не одновременно, нажмите control и w, затем, не отпуская control и не отпуская w, нажмите t)

Для этой команды потребуются столбец и строка, вы вводите их таким образом:

10,23 (enter)

и вы окажетесь в строке 10 с символом 23.

Если вы находитесь в верхней части файла и хотите найти только строку:

Ctrl+w+t and then 10

Если вы находитесь в определенной строке и хотите найти столбец:

Ctrl+w+t and then ,23

Если вы еще не открыли файл, вы можете сделать это:

nano +10,23 file (enter)

и файл откроется с курсором в строке 10, chanracter 23, так что вы можете попробовать также:

nano +10 file (enter)

nano +,23 file (enter) (Обратите внимание, что это приведет вас только к символу 23 первой строки)

Сейчас 2021 год. Вопрос OP по-прежнему актуален, но многие из приведенных здесь ответов относятся к более старой версии nano. Я не представляю этот ответ как "последнее слово"; - только в качестве обновления.

Экран nano по умолчанию состоит из пяти областей. Сверху вниз это: строка заголовка, пустая строка, окно редактирования, строка состояния и две строки справки.

Где отображать номера строк?

Номера строк могут отображаться в одном из двух мест:

  1. окно редактирования
  2. строка состояния

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

Отображение номеров строк в окне редактирования:

Существует несколько методов (это не обязательно полный список):

  1. Перед открытием файла:

    Отредактируйте/создайте файл ~/.nanorc со следующей строкой:

    set linenumbers
  2. Когда файл будет открыт:

    Используйте -l вариант в nano:

    $ nano -l <myfilename>
  3. После открытия файла:

    Переключать номера строк "вкл." и "выкл." w/ alt-shift-#:

    altshift#

Отображение номеров строк в строке состояния

  1. Перед открытием файла:

    Отредактируйте/создайте файл ~/.nanorc со следующей строкой:

    set constantshow
  2. Когда файл будет открыт:

    Используйте -c вариант в nano:

    $ nano -c <myfilename>
  3. После открытия файла:

    Переключать отображение номера строки в строке состояния "включено" и "выключено" w/ alt-shift-C:

    altshiftC

Резюме

Все это работает на сегодняшний день: Ubuntu 20.04, nano --version = GNU nano, версия 4.8, хотя есть незначительные расхождения в документация.

“set linenumbers” в nanorc делает свое дело

CTRL + 3, затем SHIFT + 3 покажет номера строк
CTRL +3, затем SHIFT +3 скроют номера строк

Начиная с версии nano 2.7.1, вы можете открыть файл с флагом -l (--linenumbers), чтобы отобразить номера строк рядом с текстом.

ALT + SHIFT + # будет работать в ubuntu