O jEdit suporta edição de blocos, mas o Emacs e o Vim parecem ter sérios problemas de usabilidade no mesmo assunto. Se alguém pudesse preencher as incógnitas aqui, seria muito mais suportável usar qualquer um dos editores:
- Seleção retangular real : onde a seleção na tela é um retângulo, não uma seleção linear que é usada para calcular uma região como o Emacs parece limitado.
- jEditar: Mantenha pressionado Ctrle selecione.
- Vim: Clique Ctrl-ve selecione.
- Emacs: Desconhecido ; parece que um plugin com mais de 400 linhas é necessário.
- Edição retangular ao vivo : veja como será o resultado em todas as linhas enquanto você edita após uma seleção de bloco.
- jEdit: Basta começar a digitar e você verá o resultado final à medida que avança.
- Vim: Clique Shift-ie digite. Só mostrará o resultado final na primeira linha até você pressionar Escpara sair do modo de inserção. Desconhecido se existe alguma maneira de ver o resultado em todas as linhas imediatamente.
- Emacs: Desconhecido ; parece ser a única maneira C-x r te definir o texto a ser preenchido após pressionar Ret.
- Iniciar e finalizar a seleção em posições fora do texto : por exemplo, eu gostaria de remover os N primeiros caracteres de cada linha, mas a primeira e a última linhas contêm menos de N caracteres.
- jEdit: Não há problema, as seleções de bloco podem começar fora do texto.
- Vim:
:set virtualedit=block
. - Emacs: Pode ser possível com
artist-mode
e / oupicture-mode
.
- Colar bloco inline : cole o bloco copiado como se estivesse colando várias linhas, como em, empurre o texto que já está lá embaixo , não está certo.
- jEdit: O padrão. Para colar um bloco como um bloco, você precisa primeiro fazer outra seleção de blocos.
- Vim: OEscVp.
- Emacs: Desconhecido .
A funcionalidade geral de seleção de blocos do Emacs pode ser encontrada no cua-mode
plugin .
Respostas:
Eu posso responder pelo Vim, mas não pelo Emacs.
Iniciar e terminar a seleção em posições fora do texto:
:set virtualedit=block
permitirá o comportamento desejado. Você pode soltar os dois pontos iniciais e adicioná-lo ao seu .vimrc, se quiser. Para mais informações,:help 'virtualedit'
no Vim.Colar bloco inline:
Se você apenas pressionar pno modo de comando, o Vim inserirá o bloco, pressionando caracteres para a direita em cada linha. Se você selecionar outro bloco e pressionar p, o Vim substituirá esse bloco pelo bloco colado.
Você pode colar um bloco "em linha" com a sequência de teclas no modo de comando OEscVp. Isso insere uma linha acima da linha atual (
O Esc
), a seleciona na linha (V
) e cola sobre ela (p
). Você pode encurtar isso para (por exemplo) ypcom um mapeamento como:nmap yp O<Esc>Vp
- digite literalmente; use cinco pressionamentos de tecla em<Esc>
vez de pressionar a tecla Escape.fonte
virtualedit
; tem que tentar isso. Sobre a colar embutido, consulte a pergunta atualizada para obter uma descrição da funcionalidade esperada.Emacs: inicie a seleção na primeira linha e simplesmente adicione o número de caracteres ausentes (por exemplo, espaços) à última linha e use o retângulo kill
Como alternativa, consulte
artist-mode
oupicture-mode
quais permitem que você se mova livremente na janela, independentemente do comprimento da linha.Emacs: Primeiro salve o bloco com kill-retangle ou salvando-o em um registro, depois vá para o ponto de inserção, use delete-retangle e insira o retângulo salvo.
No caso do Emacs, por que isso é um problema? Um plug-in pode ser compilado e a filosofia do emacs é que você não coloca tudo no núcleo, mas usa plug-ins para estender o editor.
fonte
Existe o 'cua-mode' que vem com o Emacsen 22.1 e posterior, ou siga o link para fazer o download das versões anteriores do Emacs. Há um pequeno vídeo que apresenta a funcionalidade.
Para comandos gerais retângulo, tente ler o manual , que fornece uma introdução fácil.
fonte
cua-mode
parece ser bom! +1 .. eu não poderia encontrar o vídeo que você mencionou, ver de Tom link nos comentários imediatamente abaixo da pergunta, para um link para uma informação de vídeo (diferente?) ...No vim, a maneira típica de excluir os primeiros n caracteres é fazer algo parecido
:%s/.\{0,6\}//
.%
fará o documento inteiro; você pode substituí-lo por uma seleção ou pelas linhas reais de seu interesse. Os
comando é para "substituto". Ele substituirá uma expressão regular pelo que você especificar e corresponderá apenas uma vez em cada linha, a menos que você adicione uma opção específica. O/
é um delimitador - pode ser qualquer caractere, mas/
geralmente é usado, a menos que seja vantajoso usar outra coisa (para que você não precise escapar/
no restante do comando). O argumento após o primeiro delimitador é uma expressão regular que será usada para encontrar cadeias correspondentes na sua seleção. O argumento após o segundo delimitador é o que a correspondência será substituída.Portanto, este comando diz para encontrar de 0 a 6 instâncias de qualquer caractere e substituí-las por nada.
fonte