Nano - перехід до кінця файлу


37

У мене є довгі файли журналів. Я можу переглядати останні рядки за допомогою tail -n 50 file.txt, але іноді мені потрібно редагувати ці останні рядки.

Як перейти прямо до кінця файлу під час перегляду nano?


4
Спробуйте vim:-P
Hunter.S.Thompson

5
@ Hunter.S.Thompson Це було призначено для нестандартних користувачів (lol)
Marko Pacak

@ Hunter.S.Thompson Це не працює! Ви використовуєте команду, визначену користувачем! Але тепер спробуйте vimпортативним способом G
Volker Siegel

1
@VolkerSiegel Я не можу сказати, чи ти саркастичний, але це не визначена користувачем команда. Це смайлик. Ми звикли використовувати ці речі, перш ніж хтось пускав Unicode курити бур'ян.
NieDzejkob

Саркастичний, звичайно! Я спробував вашу команду: :щоб відкрити вікно командного рядка, ніж -, Pі увійти. Ось що я отримав: "E464: Неоднозначне використання визначеної користувачем команди". Всього найкращого!
Volker Siegel

Відповіді:


52

Відкрийте файл за допомогою nano file.txt.

Тепер введіть Ctrl+, _а потім Ctrl+V


24
Ви також можете робити Ctrl + W, Ctrl + V - залежно від того, що зручніше вашим рукам :)
psmears

@psmears, що залежить від версії. v2.4 має ваші ярлики. Поточна версія v4.0 містить ярлики, про які згадує Марко. Дуже дратує.
Mausy5043

@ Mausy5043: Версії щонайменше до 2,4 мають обидва набори ярликів. Здається, що версія 4.0 видалила Ctrl + W, Ctrl + V, що дратує; у нього є Ctrl + W, Ctrl + T, Ctrl + Y, що знаходиться принаймні лише на
літерних

Ці ярлики працюють не дуже добре в Windows / Putty
Eric Grange

22

Багато редакторів підтримують можливість в командному рядку перейти безпосередньо до рядка NNN . На щастя для вас, схоже, можна перейти до кінця, якщо вказаний номер рядка минулий кінець файлу, тож ви можете використовувати щось на зразок:+NNNnano

nano +999999 file

Це також працює joe, але не в, наприклад, lessабо VIM, вони скаржаться на те, що вони пройшли повз EOF. (принаймні ті, що в моїй системі. less +G fileІ vi +$ fileпрацюють у них.)

Звичайно, щось подібне $EDITOR +$(wc -l file) file, мабуть, спрацює у більшості редакторів, але це трохи нерозумно і передбачає читання файлу двічі.


Або з нано вже відкритим, використовуйте <kbd> Alt / <kbd> + <kbd> G </kbd>, а потім введіть 99999
Ерік Грандж

11

З вбудованої довідки Nano ( ^G):

M-\   (^Home)   Go to the first line of the file
M-/   (^End)    Go to the last line of the file

Отже, натисніть Alt+, \щоб перейти до першого рядка, або натисніть Alt+, /щоб перейти до останнього рядка .

  • Це було б еквівалентом gg(start) або G(end) in vim .
  • Це також говорить, що Ctrl+ Homeабо Ctrl+ Endмає працювати, алеце ніколи не працювало для мене вони, здається, працюють на консолі / робочому столі, але не через SSH, використовуючи PuTTY.
  • Я пам’ятаю це, що /знаходиться внизу клавіатури і \знаходиться вгорі.

Якщо ви хочете отримати команду , ви можете написати функцію у своєму .bashrcчи .bash_aliasesвикористати кількість рядків з wc:

function nano-end {
    # if the file exists, jump to the end
    # otherwise, just open an empty nano
    [ -f "$1" ] && nano +$(wc -l "$1") || nano
}

Тепер просто введіть, nano-end filenameщоб відкрити файл до останнього рядка!


3

Ctrl+ Endпрацює, якщо у вас є остання (складена) версія nanoредактора.

Якщо ви не знаєте, як це зробити, ви можете прочитати редактор компіляції Nano з параметрами

Зауважте, що в нових системах, наприклад на базі Ubuntu 18.04, вже існує така версія.

З журналу змін :

2017 12 квітня - GNU nano 2.8.1

... змушує ^ Головна та ^ Кінець перейти до початку та кінця файлу (на терміналах, які підтримують ці натискання клавіш) ...

PuTTY проти Cygwin

У мене не встановлено PuTTY, тут ми повинні покладатися на інші твердження, що ці комбінації клавіш не працюють у Windows 10 + PuTTY + SSH + nano> 2.8.1.

З іншого боку, у мене є Cygwin, і Windows 10 + Cygwin + SSH + nano> 2.8.1 працює добре.


@ghaberek Перегляньте мою останню редакцію щодо детальної інформації про альтернативний підхід із Cygwin, який виявився вдалим.
LinuxSecurityFreak

2

ОП хоче, щоб я додав відповідь за перехід до останнього рядка в vim.

ESC+ ShiftGпереведе вас до початку останнього рядка.

ESC+ ShiftGAприведе вас до кінця останнього рядка, і режим вставки активується.


Якщо ви хочете зробити це в режимі вставки, зробіть це C-o G. Не те, щоб ви хотіли це зробити, якби використовували vim право ...
NieDzejkob

2

Для того, щоб перейти безпосередньо до кінця файлу в nano, просто введіть: Alt+/


У деяких системах Alt (або Meta) перемикається клавішею Esc: - \
Mausy5043
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.