97 votes

Insérer une nouvelle ligne sans entrer dans le mode d'insertion, vim

Je veux insérer des nouvelles lignes en mode normal dans vim en utilisant Shift-Enter y Ctrl-Enter . J'ai essayé quelques solutions et j'ai mélangé des solutions de Vim Wikia - Insérer une nouvelle ligne sans entrer dans le mode insertion mais Shift-Enter y Ctrl-Enter n'a pas répondu :

" put a new line before or after to this line
nnoremap <S-CR> m`o<Esc>``
nnoremap <C-CR> m`O<Esc>``

" reverse J command
nnoremap <C-J> vaW<Esc>Bi<CR><Esc>k:s/\s\+$//<CR>$

92voto

TKrugg Points 445

Mon alternative est d'utiliser oo (resp. OO ) pour insérer une nouvelle ligne sous (resp. sur) le courant à travers cette correspondance : nmap oo o<Esc>k (resp. nmap OO O<Esc>j )

29voto

Rasmus Larsen Points 370

Prenez une ligne vide et collez-la avec la touche "shift-paste" :

En commençant par le curseur sur la ligne vide :

yy + (shift + p)

"yy" supprime la ligne, et "shift + p" l'insère en dessous, sans entrer dans le mode d'insertion.

10voto

Ingo Karkat Points 61399

En raison de la manière dont la saisie au clavier est gérée en interne, cela n'est malheureusement pas possible aujourd'hui. (Ce cas particulier devrait cependant fonctionner dans GVIM.) Certaines combinaisons de touches, comme Ctrl + non-alphabetic ne peut pas être mis en correspondance, et Ctrl + letter vs. Ctrl + Shift + letter ne peuvent être distingués. (À moins que votre terminal n'envoie un capuchon de terme (ce qui n'est pas le cas de la plupart d'entre eux). En mode insertion ou ligne de commande, essayez de taper la combinaison de touches. Si rien ne se produit / n'est inséré, vous ne pouvez pas utiliser cette combinaison de touches. Ceci s'applique également à <Tab> / <C-I> , <CR> / <C-M> / <Esc> / <C-[> etc. (La seule exception est <BS> / <C-H> .) Il s'agit d'un problème connu, qui a fait l'objet de plusieurs discussions sur vim_dev et sur le canal IRC #vim.

Certaines personnes (en premier lieu Paul LeoNerd Evans) veulent corriger cela (même pour la console Vim dans les terminaux qui le supportent), et ont lancé l'idée suivante diverses propositions .

Mais à ce jour, aucun correctif ou volontaire ne s'est encore manifesté, bien que de nombreuses personnes aient exprimé le souhait d'intégrer cette fonctionnalité dans une future version majeure de Vim 8.

3voto

PenutChen Points 173

Et si vous ne voulez pas appuyer sur ESC, voici ce que vous pouvez faire

yypd$

2voto

malcolm Points 33

J'utilise :s/ \n / \r\r /g (remplacez le trait d'union par deux traits d'union, ce qui correspond à "o").

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X