je découvre ce plugin vim qui a l'air juste magique pour interagir avec git
They all sux to visualize difference EXCEPT:
1) murphy
2) torte
:colorscheme murphy
Peut etre utile pour cc à la souris dans un split vim ou screen!
Aussi pour cc plusieurs lignes dans vim sans prendre la column number :)
Pour changer de buffer, je faisais :
:ls (pour récupérer la liste des buffers et trouver le numéro du buffer)
:b5 (pour switcher sur le buffer 5)
Pas trop pratique, du coup une alternative sympa :
Put the following in your vimrc:
set wildchar=<Tab> wildmenu wildmode=full
Ensuite il suffit de faire :
:b <tab>
Pour avoir la liste des buffers et itérer dessus avec tab jusqu'à être sur le bon puis <Enter>
en mode insert : ^V et le code ascii
exemple :ctrl V 003
Habit breaking, habit making
Feb 6, 2013
Moving your Vim cursor around using the arrow keys is a bad habit, and like many bad habits it’s a difficult one to break!
Putting these lines into your vimrc can help:
noremap <Up> <NOP>
noremap <Down> <NOP>
noremap <Left> <NOP>
noremap <Right> <NOP>
This snippet causes each of the arrow keys to execute no operation, or in other words: it disables them. Next time you move your hand to the arrow keys you’ll find that nothing happens when you press them. That should remind you to move your hand back where it belongs: on the home row, where h, j, k, and l keys are waiting for you. Alternatively, you could use the konami code version of this snippet.
Learning to operate Vim without leaving the home row is the first rite of passage. If you’re still in the habit of moving around using the arrow keys, then you should disable them today.
Stop using the h, j, k, l keys!
There’s nothing slower than moving one line or column at a time. Vim provides dozens of motions for moving around quickly, so it’s no exageration to say that holding down j is a Vim anti-pattern.
Learning Vim is not unlike studying a foreign language, where adding a word to your vocabulary increases the number of things that you can say. It takes time and practice to pick up Vim’s motions, but every time you add a motion to your repertoire you’ll discover scenarios where it can save you time and keystrokes.
For the sake of learning, let’s say that it’s a bad habit to use the h, j, k, and l motions. In that case, you should disable them by putting this snippet in your vimrc:
noremap h <NOP>
noremap j <NOP>
noremap k <NOP>
noremap l <NOP>
Not being able to move one line or column at a time will force you to use other motions to get around. If that sounds scary to you, let me introduce a couple of the most useful motions. Learning these won’t take a lot of effort, and the payback will be huge.
Wordwise motions are 5x faster than h and l
The w, b, e, and ge commands allow us to move forward or backward to the start or end of a word. The W, B, E, and gE commands do the same for a WORD (see :help word for the difference between words and WORDs). If we say that the average word length is 5 letters, then moving back and forward a word at a time is approximately five times faster than using h and l to move a character at a time.
Start off by adding w and b to your repertoire. These move forward and back to the start of a word. When you find yourself wanting to get to the end of a word, add e and ge to your repertoire.
Character search is near-instant for moving within a line
The f, F, t, T, ;, and , commands make up the suite of character search motions. When you press f{char}, Vim looks forward from the cursor position for the next occurrence of {char} on the current line. If it finds a match, the cursor moves directly there. If no match is found, nothing happens. (Vim might beep at you, but you can mute that by setting ‘visualbell’.)
Try this: in Vim, move your cursor to the beginning of a line with lots of text on it. Look ahead for a character that occurs with low frequency, such as a punctuation mark or uppercase letter. Press f followed by the character that you picked. That’s two keystrokes. Are you there yet?
If your cursor stopped on a match before the one you were aiming for, press ; to repeat the search. Keep pressing ; until you hit your mark. If you overshoot, press , to reverse the search.
For uncommon characters, you can usually hit your target from a distance with only 2 keystrokes. Common characters aren’t such easy targets for this method, so it helps to think like a Scrabble player!
The character search commands allow for efficient navigation within the current line. I use them all the time! If these motions are not a part of your repertoire, then you owe it to yourself to get practicing with them. Character search allows you to move around close to the speed of thought.
Use h and l for off-by-one errors
Sometimes, I’ll accidentally use f{char} when I should have used t{char}, which places me one character away from where I wanted to be. Or perhaps I’ll use f{char} to target an uncommon character that’s adjacent to the common character I actually want to hit. I refer to these scenarios as off-by-one errors. I consider them to be one of the few occasions where it’s acceptable to use the h or l motion.
Use <NOP> mappings to break bad habits
I’m not really suggesting that you permanently disable the h, j, k, and l keys. After all, they’re necessary for correcting those off-by-one errors. But if you’re having a slow day at work, then disabling h, j, k, and l for the afternoon could make things more interesting. If it forces you out of your comfort zone and encourages you to use wordwise motions, character searches, and other motions, then it counts as a useful exercise.
Meet hardmode
If this sounds like a worthwhile challenge, you might want to install the hardmode plugin (which I heard about from Rob Miller at Vim London). This provides convenience commands for enabling and disabling the h, j, k, l, and arrow keys in one go. To disable cursorwise motions, run:
:call HardMode()
If it gets too difficult, you can wimp out and re-enable these keys by running:
:call EasyMode()
You are weak...
J'utilisais jusqu'à présent aucun plugin vim.. mais l'ouverture de fichier et le switch entre les différents buffers est pénible quand on passe beaucoup de temps dans Vim..
Du coup je teste ctrlP qui est plutot bien une fois configuré !
J'utilise pathogen pour gérer mes plugins, donc dans l'ordre :
Dans le vimrc :
"" CtrlP
map <c-b> :CtrlPBuffer<CR>
map <c-p> :CtrlP<CR>
on a ctrl+B pour naviguer entre les buffers et ctrl+P pour lancer une recherche et ouvrir un fichier
La root de la recherche peut être modifié (par défaut c'est le dossier du fichier ouvert en cours)
On peut lui dire par exemple de remonter jusqu'au .git ou au .svn
Dans mon cas, encore en svn 1.6, il y a un .svn à tous les niveaux... la solution, définir un root marker dans son vimrc :
let g:ctrlp_root_markers = ['.ctrlp']
et ensuite créer ce marker là ou on veut que la recherche se base
$ touch .ctrlp
ctrl+n en mode édition pour autocomplete le mot qu'on est en train d'écrire
se base sur les mot présent dans le fichier
ctrl+p pour autocomplete en parcourant dans le sens inverse
J'avais une ligne de conf à dupliquer X fois en incrémentant seulement un chiffre à chaque fois... m'a fait gagné du temps ;)
qa (on commence le record dans le register a)
yy (là j'enchaine les actions à repéter)
p
^
se déplacer jusqu'au chiffre en question puis c^a
q (pour stop record)
puis on rejoue 15 fois : 15@a
en ex mode, quand on veut ouvrir un autre fichier avec :split ou :vsplit par exemple, l'autocompletion ne se comporte pas de la meme maniere qu'en shell. Pour avoir le même comportement :
set wildmode=longest,list
tab ne va plus afficher le premier match, mais la liste des match possibles :)
avec une ex command :
Faites une selection avec V
Puis :normal I//<enter>
d'une maniere générale, avec :normal on peut utiliser une "normal command"
Couplé avec un range comme :5,15 ça devient cool
Et encore plus avec un range "visuel" :'<,'> qu'on obtient avec un V
Quand on est en :set nowrap, une ligne dans le fichier va prendre seulement une ligne dans vim. Donc la fin de la ligne va être cachée.
Pour voir ce qui est caché rapidement, on peut aller à la fin de la ligne : $
Ou bien scroller d'une demi-page vers la droite avec : zL
Pour scroller d'un seul caractere vers la droite: zl
Pour revenir au début de la ligne, on a le choix : 0 ou ^
Ou bien en scrollant : zH ou zh
Sympa à tester
via arnaudb
le screencast du jour bien powerful
Pour naviguer dans l'historique des jumps dans vim, en normal mode :
ctrl-o
ctrl-i