Nano - pula para o final do arquivo

37

Eu tenho alguns arquivos de log longos. Posso ver as últimas linhas com tail -n 50 file.txt, mas às vezes preciso editar essas últimas linhas.

Como pulo direto para o final de um arquivo ao visualizá-lo nano?

Marko Pacak
fonte
4
Experimente vim:-P
Hunter.S.Thompson
5
@ Hunter.S.Thompson Este foi destinado a usuários não graves (lol)
Marko Pacak
@ Hunter.S. Thompson Isso não funciona! Você está usando um comando definido pelo usuário! Mas agora experimente de vimmaneira portátil G
Volker Siegel
1
@VolkerSiegel Não sei dizer se você está sendo sarcástico, mas não é um comando definido pelo usuário. É um emoticon. Costumávamos usar essas coisas antes que alguém deixasse o Unicode fumar maconha.
NieDzejkob
Sarcástico, é claro! Eu tentei o seu comando: :a linha de comando aberta, do que -, Pe entra. Foi o que obtive: "E464: Uso ambíguo do comando definido pelo usuário". Muito bem sucedida!
Volker Siegel

Respostas:

52

Abra o arquivo com nano file.txt.

Agora digite Ctrl+ _e depois Ctrl+V

Marko Pacak
fonte
24
Você também pode fazer Ctrl + W, Ctrl + V - dependendo do que é mais confortável para as suas mãos :)
psmears
@psmears que depende da versão. v2.4 possui seus atalhos. A versão atual v4.0 possui os atalhos mencionados por Marko. Muito irritante.
Mausy5043 7/04
@ Mausy5043: Versões até pelo menos 2.4 têm os dois conjuntos de atalhos. A versão 4.0 parece ter removido Ctrl + W, Ctrl + V, o que é irritante; ele tem Ctrl + W, Ctrl + T, Ctrl + Y, que é pelo menos apenas nas teclas de letras, mas é mais longo :-(
psmears
Esses atalhos não funcionam muito bem no Windows / Putty
Eric Grange
22

Muitos editores suportam a opção na linha de comando para ir diretamente para a linha NNN . Felizmente para você, parece que vai pular para o final se o número da linha fornecido estiver além do final do arquivo, para que você possa usar algo como:+NNNnano

nano +999999 file

Isso também funciona joe, mas não no, por exemplo, lessou no VIM, eles reclamam de ter passado pelo EOF. (pelo menos os que estão no meu sistema. less +G filee vi +$ filetrabalham nesses.)

É claro que algo como $EDITOR +$(wc -l file) fileprovavelmente funcionaria na maioria dos editores, mas isso é um pouco tolo e envolve a leitura do arquivo duas vezes.

ilkkachu
fonte
Ou com o nano já aberto, use <kbd> Alt / <kbd> + <kbd> G </kbd> e digite 99999
Eric Grange
11

Na ajuda interna do Nano ( ^G):

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

Portanto, pressione Alt+ \para ir para a primeira linha ou pressione Alt+ /para ir para a última linha .

  • Isso seria o equivalente a gg(start) ou G(end) no vim .
  • Isto também afirma que Ctrl+ Homeou Ctrl+ Enddeve funcionar, masisso nunca funcionou para mim eles parecem funcionar nativamente no console / desktop, mas não via SSH usando o PuTTY.
  • A maneira como me lembro disso é /perto da parte inferior do teclado e \perto da parte superior.

Se você deseja um comando , você pode escrever uma função no seu .bashrcou .bash_aliasespara usar a contagem de linhas de 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
}

Agora, basta digitar nano-end filenamepara abrir o arquivo até a última linha!

ghaberek
fonte
3

Ctrl+ Endestá funcionando, se você tiver uma versão recente (compilada) do nanoeditor.

Se você não sabe como fazê-lo, pode ler o editor Compilando Nano com opções

Observe que em sistemas mais novos, por exemplo, com base no Ubuntu 18.04, já existe essa versão.

No changelog :

12 de abril de 2017 - GNU nano 2.8.1

... faz ^ Home e ^ End irem para o início e o fim do arquivo (nos terminais que suportam essas teclas) ...

PuTTY vs Cygwin

Não tenho o PuTTY instalado, aqui temos que confiar em outras reivindicações: essas combinações de teclas não funcionam no Windows 10 + PuTTY + SSH + nano> 2.8.1.

Por outro lado, eu tenho o Cygwin e o Windows 10 + Cygwin + SSH + nano> 2.8.1 funciona.

LinuxSecurityFreak
fonte
@ghaberek Veja minha edição mais recente para obter detalhes sobre uma abordagem alternativa com Cygwin, que provou funcionar.
LinuxSecurityFreak
2

O OP quer que eu adicione uma resposta para ir para a última linha vim.

ESC+ ShiftGlevará você ao início da última linha.

ESC+ o ShiftGAlevará ao final da última linha e o modo de inserção será ativado.

Hunter.S. Thompson
fonte
Se você quiser fazer isso no modo de inserção, faça C-o G. Não que você iria querer fazer isso se você estivesse usando direito vim ...
NieDzejkob
2

A fim de ir diretamente para o final do arquivo em nano, basta digitar: Alt+/

Mahmoud Mostafa
fonte
Em alguns sistemas, Alt (ou Meta) é alternado pela tecla Esc: - \
Mausy5043