Showing posts with label vim. Show all posts
Showing posts with label vim. Show all posts

Thursday, August 14, 2014

Removing the vim error: viminfo: Illegal starting char in line









Find hidden file .viminfo in your home and rename to viminfo-backup. It will be recreated automatically.

This file contains the history of all the vim editor records i.e the files edited and the arguments you used inside the editor etc. 

From ref http://www.golinuxhub.com/2014/04/how-to-fix-e575-viminfo-illegal.html



Thursday, December 5, 2013

Running UNIX shell commands from vim










To run a single UNIX command use the command:
   :!UNIX_command
You can start a shell from within vi and use it as you would your usual UNIX environment, then exit the shell and return to vi
To start up a shell enter the command:
   :sh
The type of shell that is started is determined by the $SHELL variable. You can specify that some other shell is to be started by setting the vi shell option
Return to using vi by entering the command exit or Ctrl-D


Shell Functions



:! cmdExecutes shell command cmd; you can add these special characters to indicate:% name of current file# name of last file edited
!! cmdExecutes shell command cmd, places output in file starting at current line
:!!Executes last shell command
:r! cmdReads and inserts output from cmd
:f fileRenames current file to file
:w !cmdSends currently edited file to cmd as standard input and execute cmd
:cd dirChanges current working directory to dir
:shStarts a sub-shell (CTRL-d returns to editor)
:so fileReads and executes commands in file (file is a shell script)
!Motion_cmdSends text from current position to Motion Command to shell command cmd
!}sortSorts from current position to end of paragraph and replaces text with sorted text

Displaying vi option values

To display the current value of all options enter the command:
:set all
To display the value of those options whose values have been reset from their default enter the command:

:set


Change an option value temporarily

To change a the value of an option temporarily:
   :set option_name
or:
   :set option_name=value

This sets the value of the option until you quit vi.

Change an option value permanently

To make a lasting change, create a file named .exrc, containing the set commands, in your home directory. The next time you use vi these options will take effect and will remain in force until you edit the .exrcfile to change them.

You can, of course, temporarily change the value of any option.

Examples of setting vi options permanently

1. To set a number of options place the set commands in the file .exrc.
   set ic
   set number
   set sh=/usr/local/bin/Tcsh
   set wm=5
This sets vi to:
   - ignore the case of characters in searches
   - display line numbers
   - use the TC shell to execute UNIX commands
   - wrap text five characters from the right edge
     of the screen
2. Options can also be set using the environment variable EXINIT.
   setenv EXINIT 'set ic number sh=/usr/local/bin/Tcsh wm=5'
For the C and TC shell user, this sets the same options as in the example above.

If there is a .exrc file owned by you in your home directory or the current directory, vi will take its option values from this and not from the EXINIT environment variable.

Friday, May 7, 2010

vim with ctags










========================vimrc===========================

Folding

augroup vimrc
  au BufReadPre * setlocal foldmethod=indent
  au BufWinEnter * if &fdm == 'indent' | setlocal foldmethod=manual | endif
augroup END


Color scheme
:colorscheme koehler


" An example for a vimrc file.
"
" Maintainer:   Bram Moolenaar
" Last change:  2008 Jul 02
"
" To use it, copy it to
"     for Unix and OS/2:  ~/.vimrc
"             for Amiga:  s:.vimrc
"  for MS-DOS and Win32:  $VIM\_vimrc
"           for OpenVMS:  sys$login:.vimrc

:set wrap                                                 " Text wrapping
:set number                                             " Line numbering
:set mouse=a                                           " Mouse active
:set tabstop=3                                         " Tab as 4 spaces
:set expandtab                                         " All tabs are spaces
":set autoindent                                         " automatically indenting your code in structures like loops and procedures.
:set shiftwidth=4                                      " select a block of code and change its indentation level
:set shiftround                                          " indent/outdent to nearest tabstops
syntax on
set noswapfile
set nobackup
:set noai
:setlocal noautoindent
:setlocal nocindent
:setlocal nosmartindent

filetype plugin on

let Tlist_Ctags_Cmd = "/home/xviengu/bin/ctags"
let Tlist_WinWidth = 50
map :TlistToggle
:nnoremap :setl noai nocin nosi inde=

":set tags=~/vobs/HW/Project/tags
:set tags=./tags,tags,~/vobs/HW/Project/tags

" show matching brackets
autocmd FileType perl set showmatch


let perl_fold=1
let perl_fold_blocks=1

" Note, perl automatically sets foldmethod in the syntax file
autocmd Syntax c,cpp,cxx,vim,xml,html,xhtml setlocal foldmethod=syntax
autocmd Syntax c,cpp,cxx,vim,xml,html,xhtml,perl normal zR


" When started as "evim", evim.vim will already have done these settings.
if v:progname =~? "evim"
  finish
endif

" Use Vim settings, rather then Vi settings (much better!).
" This must be first, because it changes other options as a side effect.
set nocompatible

" allow backspacing over everything in insert mode
set backspace=indent,eol,start

if has("vms")
  set nobackup          " do not keep a backup file, use versions instead
else
  set backup            " keep a backup file
endif
set history=50          " keep 50 lines of command line history
set ruler               " show the cursor position all the time
set showcmd             " display incomplete commands
set incsearch           " do incremental searching

" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries
" let &guioptions = substitute(&guioptions, "t", "", "g")

" Don't use Ex mode, use Q for formatting
map Q gq

" CTRL-U in insert mode deletes a lot.  Use CTRL-G u to first break undo,
" so that you can undo CTRL-U after inserting a line break.
inoremap u

" In many terminal emulators the mouse works just fine, thus enable it.
if has('mouse')
  set mouse=a
endif

" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
if &t_Co > 2 || has("gui_running")
  syntax on
  set hlsearch
endif

" Only do this part when compiled with support for autocommands.
if has("autocmd")

  " Enable file type detection.
  " Use the default filetype settings, so that mail gets 'tw' set to 72,
  " 'cindent' is on in C files, etc.
  " Also load indent files, to automatically do language-dependent indenting.
  filetype plugin indent on

  " Put these in an autocmd group, so that we can delete them easily.
  augroup vimrcEx
  au!

  " For all text files set 'textwidth' to 78 characters.
  autocmd FileType text setlocal textwidth=78

  " When editing a file, always jump to the last known cursor position.
  " Don't do it when the position is invalid or when inside an event handler
  " (happens when dropping a file on gvim).
  " Also don't do it when the mark is in the first line, that is the default
  " position when opening a file.
  autocmd BufReadPost *
    \ if line("'\"") > 1 && line("'\"") <= line("$") |
    \   exe "normal! g`\"" |
    \ endif

  augroup END

else

  set autoindent                " always set autoindenting on

endif " has("autocmd")

" Convenient command to see the difference between the current buffer and the
" file it was loaded from, thus the changes you made.
" Only define it when not defined already.
if !exists(":DiffOrig")
  command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
                  \ | wincmd p | diffthis
endif

======================================================




ctags -R *

ctrl ]  ===> jump from function call to function definition
ctrl t  ===> go back
ctrl i and ctrl o ===> travel to forward and backward of the check points

refers the curses.h which is located at /usr/include/ by using symbolic link
ln -s /usr/include/curses.h curses.h

and run ctags -R * again

ref more, more (perl tag, sh tag)

ref vim, ctags more

How should I set up tag files for a multi-level directory hierarchy?

Taglist: Source Code Browser

Vim cmd: ctags, tags file, Moving through a program...













Wednesday, May 5, 2010

Vim for developers


set nobackup       #no backup files
set nowritebackup  #only in case you don't want a backup file while editing
set noswapfile     #no swap files

good for ref:: http://www.danielmiessler.com/study/vim/


To turn off autoindent when you paste code, there's a special "paste" mode.
Type
:set paste
Then paste your code. Note that the text in the tooltip now says -- INSERT (paste) --.
After you pasted your code, turn off the paste-mode, so that auto-indenting when you type works correctly again.
:set nopaste
Put the following in your vimrc (change to whatever key you want):
set pastetoggle=


Using VIM which terminal type is dtterm
syntax enable
"colorscheme darkblue
"colorscheme morning
colorscheme desert                 <<<<< good

Make sure ~/.vim/colors has desert.vim



show full path: press 1 then Ctrl + g

OR

set title
set laststatus=2
"""""""set statusline+=%F
set statusline+=%f



http://www.cs.rit.edu/~cslab/vi.html
http://www.lagmonster.org/docs/vi2.html

General Startup
 To use vi: vi filename
 To exit vi and save changes: ZZ   or  :wq
 To exit vi without saving changes: :q!
 To enter vi command mode: [esc]


Counts
        A number preceding any vi command tells vi to repeat
 that command that many times.





Cursor Movement

 h       move left (backspace)

 j       move down

 k       move up

 l       move right (spacebar)

 [return]   move to the beginning of the next line

 $       last column on the current line

 0       move cursor to the first column on the 
  current line

 ^       move cursor to first nonblank column on the
  current line

 w       move to the beginning of the next word or 
  punctuation mark

 W       move past the next space

 b       move to the beginning of the previous word 
  or punctuation mark

 B       move to the beginning of the previous word,
  ignores punctuation

        e       end of next word or punctuation mark

        E       end of next word, ignoring punctuation

        H       move cursor to the top of the screen 

        M       move cursor to the middle of the screen

        L       move cursor to the bottom of the screen 





Screen Movement

       G        move to the last line in the file

       xG       move to line x

       z+       move current line to top of screen

       z        move current line to the middle of screen

       z-       move current line to the bottom of screen

       ^F       move forward one screen

       ^B       move backward one line

       ^D       move forward one half screen

       ^U       move backward one half screen

       ^R       redraw screen 
  ( does not work with VT100 type terminals )

       ^L       redraw screen 
  ( does not work with Televideo terminals )





Inserting

       r        replace character under cursor with next 
  character typed

       R        keep replacing character until [esc] is hit

       i        insert before cursor

       a        append after cursor

       A        append at end of line

       O        open line above cursor and enter append mode





Deleting

 x       delete character under cursor

 dd      delete line under cursor

        dw      delete word under cursor

        db      delete word before cursor





Copying Code

        yy      (yank)'copies' line which may then be put by
  the p(put) command. Precede with a count for
  multiple lines.





Put Command
        brings back previous deletion or yank of lines,
 words, or characters

        P       bring back before cursor

        p       bring back after cursor




 Find Commands

 ?       finds a word going backwards

 /       finds a word going forwards

        f       finds a character on the line under the
  cursor going forward

        F       finds a character on the line under the
  cursor going backwards

        t       find a character on the current line going
  forward and stop one character before it

 T       find a character on the current line going
  backward and stop one character before it

 ; repeat last f, F, t, T





Miscellaneous Commands

 . repeat last command

 u undoes last command issued

 U undoes all commands on one line

 xp deletes first character and inserts after
  second (swap)

 J join current line with the next line

 ^G display current line number

 % if at one parenthesis, will jump to its mate

 mx mark current line with character x

 'x find line marked with character x

 NOTE: Marks are internal and not written to the file.





Line Editor Mode
 Any commands form the line editor ex can be issued 
 upon entering line mode.

 To enter: type ':'

 To exit: press[return] or [esc]





ex Commands
 For a complete list consult the 
 UNIX Programmer's Manual





READING FILES
 copies (reads) filename after cursor in file 
 currently editing

 :r filename





WRITE FILE

 :w  saves the current file without quitting





MOVING

 :# move to line #

 :$ move to last line of file





SHELL ESCAPE
 executes 'cmd' as a shell command.

 :!'cmd'





Vim for Perl developers

Vim tutorial

      1 "set cursorline
      2
      3 nnoremap QQ :q!
      4 nnoremap :set invpaste paste?
      5 set pastetoggle=F3
      6 set showmode
      7
      8 " enable the plugin for Vim editor.
      9 filetype plugin on
      1 " Sets how many lines of history VIM has to remember
      2 set history=1700
      3
      4 " line number
      5 set number
      6
      7 " Set to auto read when a file is changed from the outside
      8 set autoread
      9
     10 "Always show current position
     11 set ruler
     12
     13 " Configure backspace so it acts as it should act
     14 set backspace=eol,start,indent
     15 set whichwrap+=<,>,h,l
     16
     17 " Highlight search results
     18 set hlsearch
     19
     20 " Makes search act like search in modern browsers
     21 set incsearch
     22
     23 " Show matching brackets when text indicator is over them
     24 set showmatch
     25 " How many tenths of a second to blink when matching brackets
     26 set mat=2
     27
     28 " Enable syntax highlighting
     29 syntax enable
     30
     31 " Turn backup off, since most stuff is in SVN, git et.c anyway...
     32 set nobackup
     33 set nowb
     34 set noswapfile
     35
     36 " Use spaces instead of tabs
     37 set expandtab
     38
     39 " Be smart when using tabs ;)
     40 set smarttab
     41
     42 " 1 tab == 3 spaces
     43 set shiftwidth=3
     44 set tabstop=3
     45
     46 " Always show the status line
     47 set laststatus=2
     46 " Always show the status line
     47 set laststatus=2
     48 
     49 " Format the status line
     50 " set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %1
     51 
     52

     61 " Taglist variables
     62 " Display function name in status bar:
     63 let g:ctags_statusline=1
     64 " Automatically start script
     65 let generate_tags=1
     66 " Displays taglist results in a vertical window:
     67 let Tlist_Use_Horiz_Window=0
     68 " Shorter commands to toggle Taglist display
     69 nnoremap TT :TlistToggle
     70 map :TlistToggle
     71 " Various Taglist diplay config:
     72 let Tlist_Use_Right_Window = 0
     73 let Tlist_Compact_Format = 1
     74 let Tlist_Exit_OnlyWindow = 1
     75 let Tlist_GainFocus_On_ToggleOpen = 1
     76 let Tlist_File_Fold_Auto_Close = 1

Sample .vimrc:

:set wrap " Text wrapping

:set number " Line numbering
:set mouse=a " Mouse active
:set tabstop=4 " Tab as 4 spaces
:set expandtab " All tabs are spaces
:set autoindent " automatically indenting your code in structures like loops and procedures.
:set shiftwidth=4 " select a block of code and change it’s indentation level
:set shiftround " indent/outdent to nearest tabstops
syntax on


hi LineNr ctermfg=darkcyan
hi LineNr ctermfg=darkred


set noswapfile

set nobackup

" show matching brackets
autocmd FileType perl set showmatch
"set foldmethod=marker
"nmap 0v/{%zf

let perl_fold=1
let perl_fold_blocks=1


Example .vimrc

.vimrc

A collection of .vimrc files

Update VIM plugin

cscope for vim:
cscope for large project: Using Cscope on large projects




Cursor movement

  • h - move left
  • j - move down
  • k - move up
  • l - move right
  • w - jump by start of words (punctuation considered words)
  • W - jump by words (spaces separate words)
  • e - jump to end of words (punctuation considered words)
  • E - jump to end of words (no punctuation)
  • b - jump backward by words (punctuation considered words)
  • B - jump backward by words (no punctuation)
  • 0 - (zero) start of line
  • ^ - first non-blank character of line
  • $ - end of line
  • G - Go To command (prefix with number - 5G goes to line 5)
Note: Prefix a cursor movement command with a number to repeat it. For example, 4j moves down 4 lines.

From http://www.worldtimzone.com/res/vi.html

Insert Mode - Inserting/Appending text

  • i - start insert mode at cursor
  • I - insert at the beginning of the line
  • a - append after the cursor
  • A - append at the end of the line
  • o - open (append) blank line below current line (no need to press return)
  • O - open blank line above current line
  • ea - append at end of word
  • Esc - exit insert mode

Editing

  • r - replace a single character (does not use insert mode)
  • J - join line below to the current one
  • cc - change (replace) an entire line
  • cw - change (replace) to the end of word
  • c$ - change (replace) to the end of line
  • s - delete character at cursor and subsitute text
  • S - delete line at cursor and substitute text (same as cc)
  • xp - transpose two letters (delete and paste, technically)
  • u - undo
  • . - repeat last command

Marking text (visual mode)

  • v - start visual mode, mark lines, then do command (such as y-yank)
  • V - start Linewise visual mode
  • o - move to other end of marked area
  • Ctrl+v - start visual block mode
  • O - move to Other corner of block
  • aw - mark a word
  • ab - a () block (with braces)
  • aB - a {} block (with brackets)
  • ib - inner () block
  • iB - inner {} block
  • Esc - exit visual mode

Visual commands

  • > - shift right
  • < - shift left
  • y - yank (copy) marked text
  • d - delete marked text
  • ~ - switch case

Cut and Paste

  • yy - yank (copy) a line
  • 2yy - yank 2 lines
  • yw - yank word
  • y$ - yank to end of line
  • p - put (paste) the clipboard after cursor
  • P - put (paste) before cursor
  • dd - delete (cut) a line
  • dw - delete (cut) the current word
  • x - delete (cut) current character

Exiting

  • :w - write (save) the file, but don't exit
  • :wq - write (save) and quit
  • :q - quit (fails if anything has changed)
  • :q! - quit and throw away changes

Search/Replace

  • /pattern - search for pattern
  • ?pattern - search backward for pattern
  • n - repeat search in same direction
  • N - repeat search in opposite direction
  • :%s/old/new/g - replace all old with new throughout file
  • :%s/old/new/gc - replace all old with new throughout file with confirmations

Working with multiple files

  • :e filename - Edit a file in a new buffer
  • :bnext (or :bn) - go to next buffer
  • :bprev (of :bp) - go to previous buffer
  • :bd - delete a buffer (close a file)
  • :sp filename - Open a file in a new buffer and split window
  • ctrl+ws - Split windows
  • ctrl+ww - switch between windows
  • ctrl+wq - Quit a window
  • ctrl+wv - Split windows vertically
http://amix.dk/vim/vimrc.html


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Maintainer: 
"       Amir Salihefendic
"       http://amix.dk - amix@amix.dk
"
" Version: 
"       5.0 - 29/05/12 15:43:36
"
" Blog_post: 
"       http://amix.dk/blog/post/19691#The-ultimate-Vim-configuration-on-Github
"
" Awesome_version:
"       Get this config, nice color schemes and lots of plugins!
"
"       Install the awesome version from:
"
"           https://github.com/amix/vimrc
"
" Syntax_highlighted:
"       http://amix.dk/vim/vimrc.html
"
" Raw_version: 
"       http://amix.dk/vim/vimrc.txt
"
" Sections:
"    -> General
"    -> VIM user interface
"    -> Colors and Fonts
"    -> Files and backups
"    -> Text, tab and indent related
"    -> Visual mode related
"    -> Moving around, tabs and buffers
"    -> Status line
"    -> Editing mappings
"    -> vimgrep searching and cope displaying
"    -> Spell checking
"    -> Misc
"    -> Helper functions
"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => General
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Sets how many lines of history VIM has to remember
set history=700

" Enable filetype plugins
filetype plugin on
filetype indent on

" Set to auto read when a file is changed from the outside
set autoread

" With a map leader it's possible to do extra key combinations
" like w saves the current file
let mapleader = ","
let g:mapleader = ","

" Fast saving
nmap <leader>w :w!<cr>


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => VIM user interface
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Set 7 lines to the cursor - when moving vertically using j/k
set so=7

" Turn on the WiLd menu
set wildmenu

" Ignore compiled files
set wildignore=*.o,*~,*.pyc

"Always show current position
set ruler

" Height of the command bar
set cmdheight=2

" A buffer becomes hidden when it is abandoned
set hid

" Configure backspace so it acts as it should act
set backspace=eol,start,indent
set whichwrap+=<,>,h,l

" Ignore case when searching
set ignorecase

" When searching try to be smart about cases 
set smartcase

" Highlight search results
set hlsearch

" Makes search act like search in modern browsers
set incsearch

" Don't redraw while executing macros (good performance config)
set lazyredraw

" For regular expressions turn magic on
set magic

" Show matching brackets when text indicator is over them
set showmatch
" How many tenths of a second to blink when matching brackets
set mat=2

" No annoying sound on errors
set noerrorbells
set novisualbell
set t_vb=
set tm=500


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Colors and Fonts
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Enable syntax highlighting
syntax enable

colorscheme desert
set background=dark

" Set extra options when running in GUI mode
if has("gui_running")
    set guioptions-=T
    set guioptions+=e
    set t_Co=256
    set guitablabel=%M\ %t
endif

" Set utf8 as standard encoding and en_US as the standard language
set encoding=utf8

" Use Unix as the standard file type
set ffs=unix,dos,mac


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Files, backups and undo
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Turn backup off, since most stuff is in SVN, git et.c anyway...
set nobackup
set nowb
set noswapfile


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Text, tab and indent related
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Use spaces instead of tabs
set expandtab

" Be smart when using tabs ;)
set smarttab

" 1 tab == 4 spaces
set shiftwidth=4
set tabstop=4

" Linebreak on 500 characters
set lbr
set tw=500

set ai "Auto indent
set si "Smart indent
set wrap "Wrap lines


""""""""""""""""""""""""""""""
" => Visual mode related
""""""""""""""""""""""""""""""
" Visual mode pressing * or # searches for the current selection
" Super useful! From an idea by Michael Naumann
vnoremap <silent> * :call VisualSelection('f')<CR>
vnoremap <silent> # :call VisualSelection('b')<CR>


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Moving around, tabs, windows and buffers
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Treat long lines as break lines (useful when moving around in them)
map j gj
map k gk

" Map  to / (search) and Ctrl- to ? (backwards search)
map <space> /
map <c-space> ?

" Disable highlight when  is pressed
map <silent> <leader><cr> :noh<cr>

" Smart way to move between windows
map <C-j> <C-W>j
map <C-k> <C-W>k
map <C-h> <C-W>h
map <C-l> <C-W>l

" Close the current buffer
map <leader>bd :Bclose<cr>

" Close all the buffers
map <leader>ba :1,1000 bd!<cr>

" Useful mappings for managing tabs
map <leader>tn :tabnew<cr>
map <leader>to :tabonly<cr>
map <leader>tc :tabclose<cr>
map <leader>tm :tabmove

" Opens a new tab with the current buffer's path
" Super useful when editing files in the same directory
map <leader>te :tabedit <c-r>=expand("%:p:h")<cr>/

" Switch CWD to the directory of the open buffer
map <leader>cd :cd %:p:h<cr>:pwd<cr>

" Specify the behavior when switching between buffers 
try
  set switchbuf=useopen,usetab,newtab
  set stal=2
catch
endtry

" Return to last edit position when opening files (You want this!)
autocmd BufReadPost *
     \ if line("'\"") > 0 && line("'\"") <= line("$") |
     \   exe "normal! g`\"" |
     \ endif
" Remember info about open buffers on close
set viminfo^=%


""""""""""""""""""""""""""""""
" => Status line
""""""""""""""""""""""""""""""
" Always show the status line
set laststatus=2

" Format the status line
set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Editing mappings
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Remap VIM 0 to first non-blank character
map 0 ^

" Move a line of text using ALT+[jk] or Comamnd+[jk] on mac
nmap <M-j> mz:m+<cr>`z
nmap <M-k> mz:m-2<cr>`z
vmap <M-j> :m'>+<cr>`mzgv`yo`z
vmap <M-k> :m'<-2 class="Special" span="span" style="color: #e0c060;"><
cr>`>my`if has("mac") || has("macunix") nmap <D-j> <M-j> nmap <D-k> <M-k> vmap <D-j> <M-j> vmap <D-k> <M-k> endif " Delete trailing white space on save, useful for Python and CoffeeScript ;) func! DeleteTrailingWS() exe "normal mz" %s/\s\+$//ge exe "normal `z" endfunc autocmd BufWrite *.py :call DeleteTrailingWS() autocmd BufWrite *.coffee :call DeleteTrailingWS() """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => vimgrep searching and cope displaying """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " When you press gv you vimgrep after the selected text vnoremap <silent> gv :call VisualSelection('gv')<CR> " Open vimgrep and put the cursor in the right position map <leader>g :vimgrep // **/*.<left><left><left><left><left><left><left> " Vimgreps in the current file map <leader><space> :vimgrep // <C-R>%<C-A><right><right><right><right><right><right><right><right><right> " When you press r you can search and replace the selected text vnoremap <silent> <leader>r :call VisualSelection('replace')<CR> " Do :help cope if you are unsure what cope is. It's super useful! " " When you search with vimgrep, display your results in cope by doing: " cc " " To go to the next search result do: " n " " To go to the previous search results do: " p " map <leader>cc :botright cope<cr> map <leader>co ggVGy:tabnew<cr>:set syntax=qf<cr>pgg map <leader>n :cn<cr> map <leader>p :cp<cr> """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => Spell checking """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Pressing ,ss will toggle and untoggle spell checking map <leader>ss :setlocal spell!<cr> " Shortcuts using map <leader>sn ]s map <leader>sp [s map <leader>sa zg map <leader>s? z= """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => Misc """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Remove the Windows ^M - when the encodings gets messed up noremap <Leader>m mmHmt:%s/<C-V><cr>//ge<cr>'tzt'm " Quickly open a buffer for scripbble map <leader>q :e ~/buffer<cr> " Toggle paste mode on and off map <leader>pp :setlocal paste!<cr> """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => Helper functions """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" function! CmdLine(str) exe "menu Foo.Bar :" . a:str emenu Foo.Bar unmenu Foo endfunction function! VisualSelection(direction) range let l:saved_reg = @" execute "normal! vgvy" let l:pattern = escape(@", '\\/.*$^~[]') let l:pattern = substitute(l:pattern, "\n$", "", "") if a:direction == 'b' execute "normal ?" . l:pattern . "^M" elseif a:direction == 'gv' call CmdLine("vimgrep " . '/'. l:pattern . '/' . ' **/*.') elseif a:direction == 'replace' call CmdLine("%s" . '/'. l:pattern . '/') elseif a:direction == 'f' execute "normal /" . l:pattern . "^M" endif let @/ = l:pattern let @" = l:saved_reg endfunction " Returns true if paste mode is enabled function! HasPaste() if &paste return 'PASTE MODE ' en return '' endfunction " Don't close window, when deleting a buffer command! Bclose call <SID>BufcloseCloseIt() function! BufcloseCloseIt() let l:currentBufNum = bufnr("%") let l:alternateBufNum = bufnr("#") if buflisted(l:alternateBufNum) buffer # else bnext endif if bufnr("%") == l:currentBufNum new endif if buflisted(l:currentBufNum) execute("bdelete! ".l:currentBufNum) endif endfunction





Labels