Я не использую vim, потому что не знаю, как из него выйти :) шутка вокруг этого забавная, но для меня vim - лучший.
Итак, я вставлю сюда команды, которые я использую чаще всего и которые могут быть полезны в качестве руководства для вас, кто хочет дать vim шанс (он того заслуживает!).
# Change mode # Exit edit mode Esc # Entry edit mode inserting on current position i # Entry edit mode inserting at the beginning of the line I # Entry edit mode inserting after the current position a # Entry edit mode inserting at the end of the line A # Entry edit mode inserting a line below o # Entry edit mode inserting a line above O # Navigation # goto line :[0–9]+ #ex. :9 goes to line 9 # goto the last line of the file G (shift+g) # page up ctrl+u #page down ctrl+f # goto beginning of the line ^ or 0 # goto end of the line $ # goto next word w # Edit # substitute a word cw # change everything till end of line c$ # change everything till a character ct<char> # copy a line yy #copy word yw # paste after p #paste before P # delete a character x # delete a line dd # delete a word dw # delete till end of line d$ # delete till end of file dG # global substitute :%s/<search_term>/<replace_term>/g # delete all lines based on search term :g/<search_term>/d # Search # find on text after cursor /<search_tearm> # find on text before cursor ?<search_tearm> # find next (used in / or ? ) n or :/ # find previous (used in / or ?) N or :? # Other # repeat last operation . # undo an operation u # mark a line with a "char" that you can use with other navigation / edit commands m<char> # ex. i'm in a line and i ma (mark as a). I can then do stuff like y'a (copy till mark a), d'a, 'a (goto mark a). Note that you can use several marks! # execute a command in terminal temporarily and come back to vim (i use this a lot for pwd) :! <command> # execute a command inside vim (Will take effect on existent content, replaces it. I use this one a lot for sorting my content - :%! sort -u) :%! <command> # EXIT :) # quit (nothing to save) :q # quit without saving :q! # save and exit :wq # jump to next file :n # open another file without exiting :e <filename> # save n line from this file to another : <line1>,<line2> w <filename> # writes from ine1 to line2 to the filename