Que editor posso usar como uma alternativa vi / vim simples?

17

Eu sou um usuário do Windows que vem para o Bash do Ubuntu graças à WSL . Agora preciso editar alguns arquivos e realmente odeio o Vi. Eu só tenho que lidar com isso, ou existe uma alternativa mais simples?

Os recursos que estou procurando são:

  • Baseado em CLI
  • fácil de usar (digitar e editar deve ser semelhante ao bloco de notas)
  • recursos simples de edição são suficientes

Vou tentar dominar o Vim, mas preciso fazer uma edição rápida agora mesmo!

sebagomez
fonte
É uma questão de opinião. Iniciantes usam o nano howtogeek.com/howto/42980/… . O vim (vi aprimorado) tem um pouco de curva de aprendizado, mas é muito poderoso - Consulte linux.com/learn/vim-101-beginners-guide-vim ou qualquer guia do vim ou o tutorial do vim, vimtutor (incluído no vim)
Pantera
Observe que esta pergunta pode ser encerrada como bastante baseada em opiniões. Você pode querer reformular-lo para caber as regras do site (por exemplo, o que eu posso usar como alternativa para vim?)
Andrea Lazzarotto
3
Votação para encerrar isso como uma questão baseada em opinião. Palavra de conselho: comece com nano e depois faça a transição para o vim com pequenos passos. Vai
valer a
1
Como acompanhamento do meu comentário, o título atual ainda é discutível e pode levar ao fechamento. As pessoas podem considerar o próprio vim "bom", e isso é subjetivo. Posso sugerir o uso da palavra "mais fácil"? Também especificar alguns recursos desejados pode ajudar a restringir a questão.
Andrea Lazzarotto
2
@Jos estamos falando sobre WSL onde a execução de programas GUI pode ser feita, mas não é trivial. Além disso, a questão não existiria para os editores da GUI, porque eles são mais fáceis do que o vim.
Andrea Lazzarotto 29/05

Respostas:

24

Se você está procurando um editor alternativo, não está sozinho. Basicamente, a vida é muito curta para aprender vie eu digo que este é um desenvolvedor de software para viver. No entanto, você deve aprender a sair porque é um problema para um em cada 20 mil programadores . Também vale a pena aprender a executar algumas operações básicas de adição / inserção, porque em alguns servidores teimosos você não encontrará outro editor.

Agora, a resposta para sua pergunta é provavelmente nano.

Se você estiver executando algum script de construção automatizado, usando gitou executando outros comandos, eles poderão abrirvim sem que você queira. Você pode evitar isso executando o seguinte antes de continuar:

export EDITOR=nano
Andrea Lazzarotto
fonte
1
obrigado! ponto extra pela EDITORdica
sebagomez 29/05
3
"Basicamente, a vida é muito curta para aprender vi". Não há necessidade de passar a vida inteira, embora se possa amar o vim. Passei duas horas assistindo a um bom tutorial no YouTube e continuei praticando o básico que aprendi com o vídeo. Agora, 70% de todas as minhas respostas no Ask Ubuntu estão escritas no vim.
Sergiy Kolodyazhnyy
7
Em "a vida é muito curta", achei que este ensaio tinha um bom argumento. Um dos maiores obstáculos (artificiais) ao aprender o Vim é a premissa falsa de que você precisa mergulhar imediatamente para se tornar um usuário "hard core". Você não Use as teclas direcionais. Use os atalhos da GUI para copiar / colar. Sair no modo de inserção. Ignore guias e registros, sinos e assobios (por enquanto). É relativamente rápido acessar a funcionalidade de nano-nível no Vim e você pode adicionar lentamente recursos avançados mais tarde, conforme necessário.
RM
Atalhos da GUI do @RM?
Andrea Lazzarotto
1
O @Sergiy vim faz sentido se você quiser usar recursos avançados. Se eu usasse o vim como eu uso o nano, continuaria usando o nano (na verdade, eu faço ... eu uso o vim quando estou em um servidor no qual não posso adicionar software, como a máquina de um cliente).
Andrea Lazzarotto
11

É uma questão de opinião.

Iniciantes usam nano .

O vim ("vi melhorado") tem um pouco de curva de aprendizado, mas é muito poderoso. Consulte este guia para iniciantes do vim ou de qualquer outro guia do vim ou o tutorial do vim vimtutor(incluído no vim).

Por enquanto, eu sugiro o nano

nano -B /path/to/file/to/edit

-B faz um backup

Os comandos são emitidos com a chave de controle e são listados na parte inferior da janela do editor.

Há um guia sobre realce de sintaxe, consulte: Como ativar o realce de sintaxe no nano?

nano

emacsé uma alternativa para ambos vime nanoe tem muitas vantagens também. emacsé mais complexo que o nano. Você pode ver o tour do emac .

Apenas para completar, temas vim + como Zenburn podem ser bastante úteis

Zenburn

Pantera
fonte
2
Não apenas iniciantes, basicamente todos os humanos que não querem entrar nas guerras vim vs emacs. : P
Andrea Lazzarotto
1
+1 eu iria com nano também, mesmo para usuários de longa data vi parece com alguma porcaria de idade
xavier_fakerat
Bem, para ser justo, você pode usar o tema vim e um .vimrc percorre um longo caminho. O vim e o emacs possuem recursos avançados que não estão disponíveis no nano, mas é um desperdício se você não usar os recursos avançados. Para edições básicas rápidas, uso o nano, embora no geral eu seja um fã do vim. kippura.org/zenburnpage
Panther
1
Aprenda vi/vim. :) Está em todos os dispositivos nix. :) O básico não é tão difícil.
fugitivo
3
"o emacs é mais complexo que o nano." : p poderia ser o eufemismo do ano.
Daniel Jour
3

como um PowerUser janelas, depois de tentar vime nanoeu descobri que eu preciso de algo entre os dois, a complexidade sábio. então eu tentei dar um tapa e foi o que eu estava procurando.

tapa imagem

slap é um editor de texto baseado em terminal, semelhante ao sublime, que se esforça para facilitar a edição a partir do terminal.


instalação:

curl -sL https://raw.githubusercontent.com/slap-editor/slap/master/install.sh | sh
Soorena
fonte
1
Você esqueceu de mencionar o principal ponto de venda, suporte de primeira classe do mouse (mesmo através de uma conexão SSH)
blueray
2

Você já ficou frustrado por o seu editor de texto não estar fazendo o que você queria? Irritado por não se lembrar ...

  • ... como encontrar ajuda?
  • ... o que: wq significa?
  • ... algum dos pequeninos que você lê como estudante de graduação?

Um mundo pequeno e corajoso aguarda!

Enquanto defendemos nossos editores de texto leves favoritos, deixe-me recomendar o excelente, minúsculo e rápido xo(exofrills) .

É um único arquivo Python 3 e possui um bom suporte para destaque de sintaxe através de pigmentos (embora não seja perfeito com não-Python):

insira a descrição da imagem aqui

Ele também possui combinações de teclas extremamente simples e úteis, que podem ser facilmente e facilmente alteradas para o conteúdo do seu coração:

insira a descrição da imagem aqui

Outras características:

  • Menos de 850 linhas de código em um único arquivo!
  • Realce de sintaxe!
  • Correspondência e substituição de expressões regulares!
  • Cache do histórico de pesquisa!
  • WTFPL licenciado!
  • Inteiramente customizável!
  • Comece em locais sem origem!
  • Pule entre palavras em uma linha!
  • Ir para qualquer lugar no arquivo!
  • Inserção de arquivo inteiro!
  • Para iniciantes - talvez você seja novo em palavras!
  • Copie e cole texto!
  • Status de linha e coluna!
  • Apenas uma linha de espaço de edição que não é de texto!
  • Salvando e carregando!

A fonte Python3 está no github , e você pode instalá-lo mais facilmente usando:

sudo apt install python3-pip
sudo pip3 install exofrills 

exofrills: seu texto foi editado ... mas você ainda está com fome.

Isenção de responsabilidade: eu não sou de forma alguma afiliado ao projeto exofrills.

gato
fonte
1
Parece muito legal, +1 de mim. Embora essa quantidade de pontos de exclamação seja perturbadora. : P
Andrea Lazzarotto
0

Embora eu não possa negar que lutei muito com vi no começo, acho que pode-se argumentar que vi é realmente muito simples de aprender. (Quando comecei a usar o Unix, a escolha era vi ou emacs; portanto, na época eu escolhi ed, sendo um editor de linhas muito simples, que eu já havia aprendido lendo os primeiros livros didáticos do Unix.) Uso o vi diariamente, mas provavelmente use apenas um subconjunto muito pequeno de seus recursos.

Aqui está primeiro um argumento para usar o vi: vi existe em todos os sistemas, usa muito poucos recursos e pode ser utilizável em conexões instáveis ​​e lentas, onde outros editores podem falhar ou ficar lentos e inutilizáveis. Ou em situações em que o sistema está com defeito, portanto as teclas de seta não são interpretadas corretamente (configurações ruins de terminfo, por exemplo.) Portanto, o vi pode ser usado para corrigir os arquivos de configuração que levam ao problema, sem serem afetados pelo problema.

E aqui está como aprender um subconjunto útil do vi: Primeiro: pare de pensar no vi como um "editor" interativo da GUI do terminal e veja-o como uma linguagem de programação para manipular arquivos de texto. No início, "vi" significava modo visual, e vi tem uma contraparte não visual ex, que é um bom lugar para começar. Digite ex no prompt do shell (usarei ¬ para representar o retorno):

$ ex¬
Entering Ex mode.  Type "visual" to go to Normal mode.
:

Agora pressione enter.

:¬
E749: empty buffer
:

Então, vamos colocar algo nele. Digite "a¬", digite uma linha de texto e, em seguida, um ponto em uma linha:

:a¬
Hello World¬
.¬
:

Esse foi o comando append. Fácil, curto e mnemônico. Mas seria bom ver o que está no buffer:

:%p¬
Hello World
:

Esse foi o comando de impressão, p, obviamente. O% é um atalho de intervalo de linha. Cada comando pode ser precedido por um número de linha ou intervalo ao qual o comando deve ser aplicado. % significa "todas as linhas". $ significa a última linha e um período significa a linha atual. Um número significa essa linha específica. Um intervalo é escrito n, me um número pode ser adicionado ou subtraído, portanto, + 1, $ - 1 significa da próxima linha para a segunda última linha. Um comando que consiste em apenas um número de linha vai para essa linha. Aqui está o pequeno subconjunto restante de comandos que eu uso:

:1i¬
this text is inserted before line 1.¬
.¬
:

:w /tmp/filename¬
"/tmp/filename" [New] 2L, 49C written
:

w grava todas (ou o intervalo escolhido) de linhas em um arquivo.

:1d¬

exclui a linha 1.

:.s/Hello/Hello,/¬
Hello, World
:.s/$/!/¬
Hello, World!

s substitui uma expressão regular. É bom conhecer expressões regulares!

:q¬
E37: No write since last change (add ! to override)

q sai. wq grava e sai. q! sai sem escrever e, de maneira semelhante, w! força uma gravação em um arquivo, se possível.

Agora legal:

:p
Hello, World!
:.!tr a-z A-Z
:p
HELLO, WORLD!

! como um comando filtra as linhas em um comando shell.

E finalmente:

:vi¬

entra no modo VISUAL. Não se deixe enganar. Parece um editor, mas ainda é apenas um shell de programação interativa. Você apenas vê o buffer o tempo todo e mais alguns comandos. No modo visual a: mostra o prompt: do modo ex. As teclas de seta (se elas funcionam) se movem e, se não, então hjkl! h esquerda, j para baixo, k para cima e eu para a direita. 0 move para o primeiro caractere e ^ (pense em regex aqui!) Para o primeiro caractere não espacial da linha. $ (regex novamente!) se move para o final da linha. Digitando: 999¬ vai para a linha 999, naturalmente, exatamente como no modo ex.

"i" entra no modo de inserção, que agora insere caracteres em vez de linhas e termina pressionando a tecla escape em vez de ".¬". "I" insere no início, "a" após o caractere sob o cursor e "A" após o final da linha atual. Sempre pressione Escape quando terminar de digitar o texto. "x" exclui o caractere sob o cursor e "D" exclui do cursor até o final da linha. "Y" puxa (copia) a linha atual e "P" a cola de volta. ": pu" faz o mesmo, mas pode ser precedido por um número de linha. ": ya" é o ex equivalente a "Y" e, novamente, útil para aplicar a um intervalo de linhas. Acho que também existe um comando de marca, mas admito que não me lembro. Eu não sinto falta disso.

O acima é o que eu uso, e sei que provavelmente não sou um usuário vi muito "eficiente". Por outro lado, uso a versatilidade de ex, por exemplo, para editar arquivos de configuração por script. Precisa alterar seu nome de host foo.bar.com para www.foobar.com em vários arquivos conf?

for file in conf/*
do (echo "%s/foo.bar.com/www.foobar.com/" ; echo "wq") |ex $file ; done

O que estou tentando dizer é que acho que o problema com o vi é que as pessoas pensam nisso como um editor difícil. Basta mudar um pouco a sua mentalidade e vê-la como uma linguagem de programação interativa muito simples, mas também muito poderosa. Tão poderoso que, mesmo com um subconjunto dos comandos disponíveis, você pode usá-lo com grande efeito - não apenas como editor, mas também como uma ferramenta de script geral bem integrada ao restante do Unix. Duvido que o nano faria tudo isso - emacs ... talvez.

LHP
fonte
3
Desculpe, mas ... isso não responde à pergunta. O OP pediu uma alternativa ao vim e as respostas devem fornecer isso.
Andrea Lazzarotto
1
Recomendo o trabalho que você colocou nesta resposta, mas ela realmente não responde à pergunta - um tutorial e o plug for vim não pertencem aqui, mas pertencem ao seu blog.
cat
Essa resposta é exatamente por que tantas pessoas estão pedindo uma alternativa aos viemacs - quanto mais dizemos que são desagradáveis ​​de usar, mais os convertidos insistem que tentamos usá-los mais.
Shukri Adams
0

Se você quiser o Sublime baseado em terminal, como o editor de texto com suporte para mouse, vá para Micro , Slap ou Suplemon .

No entanto, se você estiver procurando por um editor de texto modal, não procure mais, Kakoune .

raio azul
fonte