This is an old revision of the document!
There's an old joke that Emacs would be a great operating system if only it had a decent text editor,
whereas vi would be a great text editor if only it had a decent operating system.
to remove blank lines please use following.
:g/^$/d
OR
:g/^ *$/d
To remove tailing space
:%s/\s\+$//
To remove space at beginning
:%s/^\s\+//
To replace tab with space you need to use
:%s/[CTRL-i]/ /g
To delete lines start with some word e.g. Redirect
:g/^Redirect/d
NOTE : This will apply to whole file as we are using (%)
To convert upper case use following
:%s/\([a-z]\)/\u\1/g
To convert lower case use following
:%s/\([A-Z]\)/\l\1/g
To Match Start of line and append that line use following
(search Append end of line)
%g/^DocumentRoot/s/$/\/www/
Which append “/www” if start of line is “DocumentRoot”.
Introduction to vim scripts “:help vim-script-intro”
There is many way to run vim script simple way is to run calling script from `source`
:source /home/yahoo/test.vim
You can also call command from script directly
:call MyBackupFunc(expand('%'), { 'all':1, 'save':'recent'})
You can do mapping of the keyboard using the variables.
:nmap ;s :source /home/yahoo/test.vim<CR>
The key sequence `;s` will execute the specified script file
You can call fucntion using the stored mapping same way.
:nmap \b :call MyBackupFunc(expand('%'), { 'all': 1 })<CR>
To call the function you need to call enter squence `\b`
VIM support syntax highlighting. to turn it on.
:syntax on
to turn it off
:syntax off
function! ToggleSyntax() if exists("g:syntax_on") syntax off else syntax enable endif endfunction nmap <silent> ;s :call ToggleSyntax()<CR>
`;s` sequence to flip syntax highlighting on or off every time typed when you're in Normal mode.
nmap stands for “normal-mode key mapping”.
<silent> option causes the mapping not to echo any command it's executing.
function! CapitalizeCenterAndMoveDown() s/\<./\u&/g "Built-in substitution capitalizes each word center "Built-in center command centers entire line +1 "Built-in relative motion (+1 line down) endfunction nmap <silent> \C :call CapitalizeCenterAndMoveDown()<CR>
single backslash used for continuation marker
call SetName( \ first_name, \ middle_initial, \ family_name \ )
Also you can use “|” to write two line on singe line.
echo "Starting..." | call Phase(1) | call Phase(2) | echo "Done"
You can comment using single quote, as double quote used to define a string.
also you can use “|” to escape the comment in some cases.
echo "> " |"Print generic prompt
to define variable you need to use word `let`
let name = "Damian" let height = 165 let interests = [ 'Cinema', 'Literature', 'World Domination', 101 ] let phone = { 'cell':5551017346, 'home':5558038728, 'work':'?' }
g: varname The variable is global s: varname The variable is local to the current script file w: varname The variable is local to the current editor window t: varname The variable is local to the current editor tab b: varname The variable is local to the current editor buffer l: varname The variable is local to the current function a: varname The variable is a parameter of the current function v: varname The variable is one that Vim predefines
& varname A Vim option (local option if defined, otherwise global) &l: varname A local Vim option &g: varname A global Vim option @ varname A Vim register $ varname An environment variable