Wednesday, 26 October 2016

Some time saving commands of vim

Vim is an advanced text editor that seeks to provide the power of the de-facto Unix editor 'Vi', with a more complete feature set.  Since the 1970’s, Vi and Vim are popular amongst developers and are present on most UNIX-based servers.

Vim Editor

I'm showing you some good shorthand codes of vim it will charge your coding speed.

Some Basics Vim:

:e filename Open filename for edition
:w Save file
:q Exit Vim
:q! Quit without saving
:x Write file (if changes has been made) and exit
:sav filename Saves file as filename
. Repeats the last change made in normal mode
5. Repeats 5 times the last change made in normal mode

Some Moving file operations:

k or Up Arrow move the cursor up one line
j or Down Arrow move the cursor down one line
e move the cursor to the end of the word
b move the cursor to the begining of the word
0 move the cursor to the begining of the line
G move the cursor to the end of the file
gg move the cursor to the begining of the file
L move the cursor to the bottom of the screen
:59 move cursor to line 59. Replace 59 by the desired line number.
20| move cursor to column 20.
% Move cursor to matching parenthesis
[[ Jump to function start
[{ Jump to block start

Some Cut Copy Commands:

dd Cut current line
yw Yank word
y Copy the selected text to clipboard
yy Copy current line
y$ Copy to end of line
p Paste clipboard contents
D Cut to end of line

Some Search cheat sheet:

/word Search word from top to bottom
?word Search word from bottom to top
* Search the word under cursor
/\< ¦.\> Search all words of 4 letters
/\cstring Search STRING or string, case insensitive
/jo[ha]n Search john or joan
/\< the Search the, theatre or then
/\< the\> Search the
/\<\d\d\d\d\> Search exactly 4 digits
/^\n\{3} Find 3 empty lines
/the\> Search the or breathe
/\/ Search fred but not alfred or frederick
/fred\|joe Search fred or joe
:bufdo /searchstr/ Search in all open files
bufdo %s/something/somethingelse/g Search something in all the open buffers and replace it with somethingelse

Replace Commands :

:%s/old/new/g Replace all occurences of old by new in file
:%s/onward/forward/gi Replace onward by forward, case unsensitive
:%s/old/new/gc Replace all occurences with confirmation
:%s/onward/forward/gi Replace onward by forward, case unsensitive
:%s/ *$//g Delete all white spaces
:2,35s/old/new/g Replace all occurences between lines 2 and 35
:5,$s/old/new/g Replace all occurences from line 5 to EOF
:%s/^/hello/g Replace the begining of each line by hello
:%s/$/Harry/g Replace the end of each line by Harry
:%s/\r/\r/g Transform DOS carriage returns in returns
:%s#<[^>]\+>##g Delete HTML tags but keeps text
:g/string/d Delete all lines containing string
:v/string/d Delete all lines containing which didn’t contain string
:s/Bill/Steve/ Replace the first occurence of Bill by Steve in current line
:s/Bill/Steve/g Replace Bill by Steve in current line
:%s/^\(.*\)\n\1$/\1/ Delete lines which appears twice
Ctrl+a Increment number under the cursor
:%s/Bill/Steve/g Replace Bill by Steve in all the file
:%s/^M//g Delete DOS carriage returns (^M)
Ctrl+x Decrement number under cursor
ggVGg? Change text to Rot13

Read Write cheat:

:r infile Insert the content of infile
:1,10 w outfile Saves lines 1 to 10 in outfile
:1,10 w >> outfile Appends lines 1 to 10 to outfile
:23r infile Insert the content of infile under line 23

Explorer file:

:browse e Graphical file explorer
:ls List buffers
:e . Open integrated file explorer
:cd .. Move to parent directory
:args List files
:Sex Split window and open integrated file explorer
:Sex! Same as :Sex but split window vertically
:args *.php Open file list
:grep expression *.php Returns a list of .php files contening expression
gf Open file name under cursor

Syntax highlighting :

:syntax off Turn off syntax highlighting
:syntax on Turn on syntax highlighting
:set syntax=perl Force syntax highlighting

I hope you like the post please share and comment.

Featured post

How to create dynamic schema in mongodb

Sometime what we need in our application is to create mongodb schema for collection and some of our collection schema are same but names are...

Popular Posts