Como abrir o arquivo copiado pelo VI

6

Digamos que eu tenha 'a.txt'. Eu gostaria de copiar o arquivo e abrir o arquivo recém-copiado usando VI.

cp a.txt b.txt
vi b.txt

Como combinar os dois comandos em um comando?

    
por comphys 15.08.2018 / 09:49

4 respostas

14

Você pode usar o próprio vi para fazer a cópia, abrindo a.txt, em seguida, salvando o conteúdo em b.txt (copiando-o efetivamente) e, em seguida, alternando para b.txt.

Colocando tudo junto:

vi -c 'w b.txt' -c 'e#' a.txt

Isso equivale a executar vi a.txt , seguido pelo comando :w b.txt (dentro de vi ), que salvará o conteúdo em um arquivo chamado b.txt. Mas o vi ainda estará editando a.txt neste ponto, então você segue com o comando :e# , que significa "editar arquivo alternativo" (ou "editar último arquivo") e dado que o vi acabou de tocar b.txt, mudará para a edição desse arquivo.

    
por 15.08.2018 / 10:01
4

usando o operador &&

cp a.txt b.txt && vi b.txt
    
por 15.08.2018 / 09:52
3

Você pode escrever sua própria função e usar essa função. No exemplo abaixo, você pode usar o cp1 como um comando.

exemplo:

$ cat test.txt
function cp1() {
  source_file=$1
  destination_file=$2
  cp "${source_file}" "${destination_file}"
  vi "${destination}"
}

$ . ./test.txt    
$ cp1 a.txt b.txt 
    
por 15.08.2018 / 10:15
2

Se você quiser uma maneira de salvar você digitando, pode usar a funcionalidade bash build in para repetir a última palavra do comando anterior. Você pode fazer isso por ALT +.

> cp a.txt b.txt
> vi ALT+.

Muito útil, e lembra você do operador ponto do vim.

Feliz golfe.

    
por 15.08.2018 / 10:24

Tags