Começando no início da linha 4 ( ESC 4 ESC g g
ou M-4 M-g M-g
para ir para lá), C-3 C-k C-2 C-n C-y
(ou ESC 3 C-k down down C-y
se você não gostar de manter os modificadores pressionados) fará isso.
Se você não quiser fazer a aritmética em sua cabeça, mas selecione as linhas visualmente,
- Mover para o início da zona para mover
C-SPC
para marcar
- Mova para o início da primeira linha para manter
C-w
cortar
- Mova para o local onde deseja inserir o texto recortado
C-y
colar
Acho que não há maneira de reduzir isso, a menos que você esteja disposto a perder alguma flexibilidade (por exemplo, se você deseja mover um bloco de exatamente três linhas). Você precisa fornecer três locais: o início do bloco a ser movido, o final do bloco a ser movido e o destino. Nas seqüências acima, há um único pressionamento de tecla em cada local, o mais baixo possível.
Gilles 'SO- parar de ser mau'
fonte
n
paramove-text-down
emove-text-up
. Isso reduz o passo (2) paraM-3
H-S-n
.Você pode usar a região de expansão para marcar o bloco, se for uma unidade semântica, como uma função (o site do pacote explica isso em mais detalhes). Em seguida, mova-o como a outra resposta explica. Dependendo de onde você está no bloco, uma única tecla pode marcar a coisa toda.
fonte
Se você estiver usando
evil-mode
, você também pode usar umex
comando::4,6m9
(qualm
oves linhas4
para6
a linha9
).fonte
evil-mode
não é exatamente obscuro - ele tem quase 18.000 downloads no melpa. Outra resposta usadaexpand-region
, que também é um pacote externo. Para um site de perguntas e respostas, provavelmente é bom incluir várias maneiras de realizar a mesma coisa com pacotes diferentes (embora possa ser bom apresentar algumas diretrizes).