aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Christian Pohle2015-10-15 09:50:47 +0200
committerMax Christian Pohle2015-10-15 09:50:47 +0200
commitb9469a391087870d700253cc0fc915b08cdb3820 (patch)
tree902967957125071ee1fcacce80a467b7f80275ca
parent1239c1b8d6929d78cc29bce8bd8b3933a4aebb1b (diff)
parente4a3b3ce20fb6db3590b5065678e39817afe9083 (diff)
downloadvim-karlmarks-b9469a391087870d700253cc0fc915b08cdb3820.tar.bz2
vim-karlmarks-b9469a391087870d700253cc0fc915b08cdb3820.zip
Merge remote-tracking branch 'vim/master'
-rw-r--r--.vim/.gitignore7
-rw-r--r--.vim/.gitmodules3
-rw-r--r--.vim/colors/coderonline.vim142
-rw-r--r--.vim/doc/INSTALL40
-rw-r--r--.vim/doc/coderonline-vim.pngbin0 -> 195172 bytes
-rw-r--r--.vim/doc/readme.md8
-rw-r--r--.vim/doc/shortcuts.txt41
-rw-r--r--.vim/favicon.icobin0 -> 32038 bytes
-rw-r--r--.vim/gvim.desktop10
-rw-r--r--.vim/indent/.keep1
m---------.vim/plugins/Vundle.vim0
-rw-r--r--.vim/spell/.keep1
-rw-r--r--.vim/temp/.keep3
-rw-r--r--.vim/vimrc223
14 files changed, 479 insertions, 0 deletions
diff --git a/.vim/.gitignore b/.vim/.gitignore
new file mode 100644
index 0000000..93df1ba
--- /dev/null
+++ b/.vim/.gitignore
@@ -0,0 +1,7 @@
1/temp/**
2!temp/.keep
3/intent/**
4!indent/.keep
5/spell/**
6!spell/.keep
7/systags
diff --git a/.vim/.gitmodules b/.vim/.gitmodules
new file mode 100644
index 0000000..57ae747
--- /dev/null
+++ b/.vim/.gitmodules
@@ -0,0 +1,3 @@
1[submodule "plugins/Vundle.vim"]
2 path = plugins/Vundle.vim
3 url = https://github.com/VundleVim/Vundle.vim.git
diff --git a/.vim/colors/coderonline.vim b/.vim/colors/coderonline.vim
new file mode 100644
index 0000000..eb8baa6
--- /dev/null
+++ b/.vim/colors/coderonline.vim
@@ -0,0 +1,142 @@
1" color theme for vim
2" Maintainer: Max Christian Pohle <max@coderonline.de>
3" Last Change: 07.09.2015
4" Web: http://max.coderonline.de/
5
6set background=dark
7hi clear
8if exists("syntax_on")
9 syntax reset
10endif
11let g:colors_name="coderonline"
12
13
14set guifont=Andale\ Mono\ 12
15"set guifont=Liberation\ Mono\ Normal\ 14
16"set guifont=Meslo\ LG\ S\ DZ\ for\ Powerline\ 14
17"set guifont=Monospace\ 11
18"set guifont=DejaVu\ Sans\ Mono\ 11
19"set guifont=Liberation\ Mono\ for\ Powerline\ 11
20"set guifont=Envy\ Code\ R\ 11
21
22set number
23set hls
24
25highlight Menu gui=none cterm=none term=none guibg=white ctermbg=white guifg=black ctermfg=black
26highlight Scrollbar gui=none cterm=none term=none guibg=white ctermbg=white guifg=black ctermfg=black
27highlight Tooltip gui=none cterm=none term=none guibg=yellow ctermbg=yellow guifg=black ctermfg=black
28
29highlight Normal gui=none cterm=none term=none guibg=white ctermbg=white guifg=black ctermfg=black
30highlight! link NonText Normal
31
32highlight Statement gui=bold cterm=bold term=bold guibg=white ctermbg=white guifg=#0000ff ctermfg=21
33highlight! link Boolean Statement
34highlight! link Identifier Statement
35
36highlight Type gui=bold cterm=bold term=bold guibg=white ctermbg=white guifg=DarkBlue ctermfg=darkblue
37
38highlight Constant gui=none cterm=none term=none guibg=white ctermbg=white guifg=brown ctermfg=brown
39highlight! link String Constant
40highlight! link Number Constant
41
42highlight Comment gui=none cterm=none term=none guibg=white ctermbg=white guifg=DarkGreen ctermfg=DarkGreen
43highlight! link PreProc Comment
44
45highlight StatusLine gui=bold cterm=bold term=bold guibg=lightgray ctermbg=lightgray guifg=darkgray ctermfg=darkgrey
46highlight! link StatusLineNC StatusLine
47
48highlight LineNr gui=none cterm=none term=none guibg=lightgray ctermbg=lightgray guifg=black ctermfg=black
49highlight CursorLine gui=none cterm=none term=none guibg=lightgray ctermbg=lightgray
50" highlight! link CursorLine LineNr
51" highlight! link CursorColumn LineNr
52" highlight! link ColorColumn LineNr
53
54" Cursor the character under the cursor
55highlight Cursor gui=inverse cterm=inverse term=inverse guibg=lightgray ctermbg=lightgray guifg=black ctermfg=black
56highlight iCursor gui=underline cterm=underline term=underline
57highlight! link CursorLineNr Cursor
58highlight! link CursorIM Cursor
59highlight! link Visual Cursor
60highlight! link VirualNOS Cursor
61" highlight! link MatchParen LineNr
62highlight MatchParen guibg=yellow ctermbg=yellow
63
64" WildMenu current match in 'wildmenu' completion
65" Pmenu Popup menu: normal item.
66" PmenuSel Popup menu: selected item.
67" PmenuSbar Popup menu: scrollbar.
68" PmenuThumb Popup menu: Thumb of the scrollbar.
69highlight! link WildMenu Todo
70highlight! link Popup LineNr
71highlight! link PMenu Popup
72highlight! link PMenuSel CursorLineNr
73highlight! link PMenuSbar CursorLineNr
74highlight! link PMenuThumb CursorLineNr
75
76
77" Windows
78highlight Title gui=bold cterm=bold term=bold guibg=lightgray ctermbg=lightgray guifg=darkgray ctermfg=darkgray
79highlight! link VertSplit Title
80highlight! link StatusLine Title
81highlight! link StatusLineNC Title
82highlight! link TabLine Title
83highlight! link TabLineFill TabLine
84highlight! link TabLineSel TabLine
85highlight TabLineSel gui=inverse cterm=inverse term=inverse
86
87highlight cParen gui=none cterm=none term=none guibg=white ctermbg=white guifg=orange ctermfg=brown
88highlight cBlock gui=none cterm=none term=none guibg=white ctermbg=cyan guifg=orange ctermfg=brown
89highlight vimParenSep gui=none cterm=none term=none guibg=white ctermbg=white guifg=orange ctermfg=brown
90
91highlight Special gui=bold cterm=bold term=bold guibg=white ctermbg=white guifg=black ctermfg=178
92highlight! link SpecialKey Special
93
94highlight Todo gui=none cterm=none term=none guibg=yellow ctermbg=yellow guifg=black ctermfg=black
95highlight! link ModeMsg Todo
96highlight! link MoreMsg Todo
97highlight! link ErrorMsg Todo
98highlight! link Conceal Todo
99highlight! link Directory Todo
100
101highlight Question gui=bold cterm=bold term=bold guibg=white ctermbg=white guifg=black ctermfg=black
102highlight! link WarningMsg Question
103
104highlight SpellBad gui=underline cterm=underline term=underline ctermbg=white
105highlight! link SpellCap SpellBad
106highlight! link SpellLocal Todo
107highlight! link SpellRare Todo
108" *hl-Conceal*
109" *hl-DiffAdd*
110" DiffAdd diff mode: Added line |diff.txt|
111" *hl-DiffChange*
112" DiffChange diff mode: Changed line |diff.txt|
113" *hl-DiffDelete*
114" DiffDelete diff mode: Deleted line |diff.txt|
115" *hl-DiffText*
116" DiffText diff mode: Changed text within a changed line |diff.txt|
117" *hl-ErrorMsg*
118" Folded line used for closed folds
119" *hl-FoldColumn*
120" FoldColumn 'foldcolumn'
121" *hl-SignColumn*
122" SignColumn column where |signs| are displayed
123" *hl-IncSearch*
124" IncSearch 'incsearch' highlighting; also used for the text replaced with
125" ":s///c"
126" *hl-LineNr*
127" MatchParen The character under the cursor or just before it, if it
128" is a paired bracket, and its match. |pi_paren.txt|
129"
130" *hl-ModeMsg*
131" *hl-NonText*
132" *hl-Search*
133" Search Last search pattern highlighting (see 'hlsearch').
134" Also used for highlighting the current line in the quickfix
135" window and similar items that need to stand out.
136" *hl-SpecialKey*
137" to show unprintable characters in the text, 'listchars'.
138" Generally: text that is displayed differently from what it
139" really is.
140" *hl-SpellBad*
141
142
diff --git a/.vim/doc/INSTALL b/.vim/doc/INSTALL
new file mode 100644
index 0000000..14fb286
--- /dev/null
+++ b/.vim/doc/INSTALL
@@ -0,0 +1,40 @@
1# INSTALL
2# this should briefly show you how to install this bundle
3#
4# step 1)
5# download the current version using git
6git clone http://git.entwicklerseite.de/vim .vim/
7
8# step 2)
9# create a symbolic link to the downloaded vim.rc in you $HOME-directory
10ln -s .vim/vimrc .vimrc
11
12# step 3)
13# get vim submodules, namely this is just vundle as this will download the rest by itsown
14git submodule update --init --recursive
15
16# step 4)
17# fix errors caused by the different vim version you might be using and define the spell checkers language. Starting Vim will show you which lines are not supported on your vim installation so that you can fix them:
18vim vimrc
19
20# step 5)
21# download spell file for you language
22vim -c ":au! SpellFileMissing"
23
24# step 6)
25# build YouCompleteMe (if you plan to use it)
26cd plugins/YouCompleteMe
27python2 ./install.py --clang-completer
28
29
30# step 7)
31# create an entry in file managers right click menu 'open with' allowing you to open the file in a vim tab
32mkdir -p .local/share/Thunar/sendto/
33cp ~/.vim/gvim-tab.desktop ~/.local/share/Thunar/sendto/
34
35# step 8)
36# add gvim functionality to thunar, so that sendto can be used to open a file in an existing vim instance (as a tab in this case)
37cp ~/.vim/gvim-tab.desktop ~/.local/share/applications/
38update-desktop-database ~/.local/share/applications/
39
40
diff --git a/.vim/doc/coderonline-vim.png b/.vim/doc/coderonline-vim.png
new file mode 100644
index 0000000..ac76bff
--- /dev/null
+++ b/.vim/doc/coderonline-vim.png
Binary files differ
diff --git a/.vim/doc/readme.md b/.vim/doc/readme.md
new file mode 100644
index 0000000..800c1a2
--- /dev/null
+++ b/.vim/doc/readme.md
@@ -0,0 +1,8 @@
1<h1>vim configuration</h1>
2This is the configuration I am using.
3
4
5<h2>coderonline.vim - colorscheme</h2>
6<a href="/vim/plain/doc/coderonline-vim.png">
7 <img src="/vim/plain/doc/coderonline-vim.png" width="720" alt="screenshot of vim" />
8</a>
diff --git a/.vim/doc/shortcuts.txt b/.vim/doc/shortcuts.txt
new file mode 100644
index 0000000..6b88797
--- /dev/null
+++ b/.vim/doc/shortcuts.txt
@@ -0,0 +1,41 @@
1[normal mode]
2f{char} - move cursor to the character {char}
3
4[visual mode] - with selected lines
5gq - formats text so that it fits in whatever :set textwidth was set
6
7
8[commands]
9:spell [word] - adds a word to the current dictionary (no mistake any more)
10:set list - display non printable characters
11:retab - replaces tabs with spaces
12:set expandtab - in insert mode: replace tab with spaces
13
14
15[navigation]
16<CTRL-]> - look up the tag under the cursor (help links as well)
17<CTRL-T> - return back from tag under the cursor
18
19
20[macros] - record and play back a series of vim commands
21qa - start (q) macro recording in register a (can be anything)
22q - stop macro recording
23@a - replay macro a
24:'<,'>normal @a - apply a to every line in the current selection
25
26[marker]
27ma - set marker a-z (a in this case)
28'a - go to marker a
29
30[windows]
31<C-W>v - splits buffer vertically (screen uses |)
32<C-W>s - splits buffer horizontally (same as screen)
33<C-W>w - moves the cursor to the next window and back
34<C-W>[dir] - moves the cursor in that direction (use hjkl or arrow keys)
35
36
37[vimdiff]
38do - get changes from other window into the current
39dp - put changes from current window into the other
40]c - jump to the next change
41[c - jump to the prevous change
diff --git a/.vim/favicon.ico b/.vim/favicon.ico
new file mode 100644
index 0000000..ca0b3c3
--- /dev/null
+++ b/.vim/favicon.ico
Binary files differ
diff --git a/.vim/gvim.desktop b/.vim/gvim.desktop
new file mode 100644
index 0000000..37c6e58
--- /dev/null
+++ b/.vim/gvim.desktop
@@ -0,0 +1,10 @@
1[Desktop Entry]
2Name=Vi IMproved Tab
3Comment=Open file in an existing instance of vi and in a new tab
4MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
5Exec=gvim f -N --remote-tab %F
6Icon=gvim
7Type=Application
8Terminal=false
9X-XClassHintResName=VIM
10Categories=Utility;TextEditor;
diff --git a/.vim/indent/.keep b/.vim/indent/.keep
new file mode 100644
index 0000000..f8e463a
--- /dev/null
+++ b/.vim/indent/.keep
@@ -0,0 +1 @@
this directory gets used for custom indentation rules. file naming follows the extension of the files the indentation is for and the extension .vim.
diff --git a/.vim/plugins/Vundle.vim b/.vim/plugins/Vundle.vim
new file mode 160000
Subproject 0ee36b26e127cda512a8f2852a59e5a5f374c87
diff --git a/.vim/spell/.keep b/.vim/spell/.keep
new file mode 100644
index 0000000..6d81f6e
--- /dev/null
+++ b/.vim/spell/.keep
@@ -0,0 +1 @@
vim will automatically download spellchecker dictionaries to this directory
diff --git a/.vim/temp/.keep b/.vim/temp/.keep
new file mode 100644
index 0000000..3d99c12
--- /dev/null
+++ b/.vim/temp/.keep
@@ -0,0 +1,3 @@
1this directory is meant to store backups and undo files. it improves the vim
2experience when working with fuse mounted file systems, because they can get
3really slow when doing those things remotely
diff --git a/.vim/vimrc b/.vim/vimrc
new file mode 100644
index 0000000..5d3417b
--- /dev/null
+++ b/.vim/vimrc
@@ -0,0 +1,223 @@
1" vi:columns=160:list:ts=2:sts=2:sw=2
2"================================================================================
3" Vundle: plugin manager...
4set nocompatible | " do not try to be vi, be vim (required by Vundle)
5filetype off | " Vundle needs this
6set rtp+=~/.vim/plugins/Vundle.vim | " set runtimepath (required by Vundle)
7call vundle#begin('~/.vim/plugins/') | " location where Vundle searches&installs plugins
8
9" Plugin dependant configurations...
10Plugin 'VundleVim/Vundle.vim' | " Vundle itself (required)
11Plugin 'cscope_plus.vim' | " run cscope -R -b in project folder then use
12Plugin 'autoload_cscope.vim' | " CTRL+\ s searches word under cursor, CTRL+T back
13Plugin 'tpope/vim-fugitive' | " the most complete GIT integration plugin
14
15Plugin 'taglist-plus' | " quick code navigator
16let Tlist_Compact_Format = 1 | "
17let Tlist_GainFocus_On_ToggleOpen = 1 | "
18let Tlist_Close_On_Select = 1 | "
19
20Plugin 'Valloric/YouCompleteMe' | " syntax checker and code completion
21let g:ycm_global_ycm_extra_conf = '' | " fallback, right one should be in the applications path
22let g:ycm_confirm_extra_conf = 0 | " disable 'do you really want to execute .py?'
23let g:ycm_key_select_completion = '<Tab>' | " key completion key
24let g:ycm_error_symbol = '✖' | " insert this as an error symbol in the gutter bar
25let g:ycm_warning_symbol = '➔' | " insert this as a warning symbol in the gutter bar
26let g:ycm_collect_identifiers_from_tags_files = 1 | "
27let g:ycm_autoclose_preview_window_after_insertion=1 | " close the window when leaving insert mode
28"let g:ycm_semantic_triggers = {'c' : ['(', ',']} | " add additional triggers (not recommend)
29
30let b:html_omni_flavor='xhtml' | " prever xhtml over html because that makes inline php code possible without hassle
31let html_use_css = 1 | " when using :TOhtml no font-tags will be used, but proper css
32
33call vundle#end() | " required by Vundle
34filetype plugin indent on | " required by Vundle
35behave mswin
36"================================================================================
37" custom config
38colorscheme coderonline
39syntax enable
40
41set noswapfile | " noundofile, nobackup, nowritebackup
42set backupdir=~/.vim/temp | " using :set backup will copy current file to this directory
43set directory=~/.vim/temp | "
44set undodir=~/.vim/temp | "
45
46set ts=2 sts=2 sw=2 expandtab | " indentation which i like (abbr: tabstop, softtabstop, shiftwidth)
47set autoindent | " always set autoindenting on
48set copyindent | " copy the previous indentation on autoindenting
49set scrolloff=2 | " always keeps at least two lines visible (when seeking)
50set selectmode=mouse | " avoid using select mode (only with mouse)
51set selection=exclusive | " includes last character of the selection into following command (like x or d)
52
53set whichwrap=b,s,<,>,[,] | " beyond beginning/end line causes cusor to wrap
54set backspace=indent,eol,start| " allow backspacing over everything in insert mode, not needed with whichwrap
55set diffopt+=iwhite,filler | " lets diff ignore white spaces
56set spell spelllang=en,de | " enable spell checker
57set virtualedit=onemore | " one character beyond the line length should be navigatable (options: all,insert,block,onemore)
58set breakindent cpoptions+=n | " when wrapping lines indent wrapped line to align with the previews
59set linebreak | " do not wrap in the middle of words
60set showcmd | " displays status line messages while selecting (matrix size)
61set nofoldenable | " do not fold code automatically
62set tags+=~/.vim/systags | " ctags -R -f ~/.vim/systags /usr/include /usr/local/include
63set wildmenu wildmode=full | " wildmenu code completion
64
65" search...
66set ignorecase smartcase | " if search pattern contains uppercase then search is case sensitive
67set incsearch | " do incremental searching
68set showmatch matchtime=4 | " blinks matching braces
69
70set novisualbell | " don't beep
71set noerrorbells | " don't beep
72set clipboard=unnamedplus | " makes copy and paste work (autoselectplus might work as well)
73set number | " toggle line numbers
74
75if has("multi_byte")
76 set encoding=utf-8 | " we need default utf-8 encoding to use cool chars as line break and so on (see below)
77 scriptencoding utf-8 | " tell vim that we are using utf-8 here
78 set showbreak+=› | " symbol used in the beginning of a wrapped line
79 set listchars=eol:↲ | " symbols used when using :set list (which displays non-printable chars)
80 set listchars+=trail:· | " symbols used when using :set list (which displays non-printable chars)
81 set listchars+=precedes:« | " symbols used when using :set list (which displays non-printable chars)
82 set listchars+=extends:» | " symbols used when using :set list (which displays non-printable chars)
83 set listchars+=tab:▸\ | " symbols used when using :set list (which displays non-printable chars)
84endif
85
86if has("autocmd")
87 set modeline | " set variables specific to a file, like indentation by adding a comment
88 set modelines=3 | " how many lines in the beginning and end of the file can be mode lines?
89
90 augroup resCur | " make cursor appear in its previous position when reopening a file...
91 autocmd BufReadPost * call setpos(".", getpos("'\""))
92 augroup END
93
94 augroup PreviewOnBottom | " will open new windows below the current (only in insert mode, so that the preview window is drawn below)
95 autocmd InsertEnter * set splitbelow
96 autocmd InsertLeave * set splitbelow!
97 augroup END
98
99 augroup OmniFunc | " this will enable omnicomplete just in case this configuration runs somewhere, where YouCompleteMe is not compiled
100 if exists("+omnifunc")
101 autocmd Filetype *
102 \ if &omnifunc == "" |
103 \ setlocal omnifunc=syntaxcomplete#Complete |
104 \ setlocal completeopt=longest,menuone |
105 \ endif
106 endif
107 augroup END
108
109 autocmd FileType text setlocal textwidth=78 | " text files: set 'textwidth' to 78
110 autocmd FileType gitcommit set tw=72 | " longer commit messages without auto line wrapping
111 autocmd FileType LaTeX let g:tex_flavor = "latex"| set conceallevel=1| set concealcursor=
112 autocmd BufNewFile,BufReadPost *.config set filetype=xml | " visual studio config file
113 autocmd BufNewFile,BufReadPost *.csproj set filetype=xml | " visual studio project file
114 autocmd BufNewFile,BufReadPost *.sln set filetype=xml | " visual studio solution file
115endif
116
117"================================================================================
118" gui stuff and appearance
119if &t_Co > 2
120 set hlsearch | " highlight all search matches
121 set cursorline | " highlight currently selected line
122endif
123
124
125if has("gui_running")
126 set mouse=a | " use mouse in gui-mode (which is default)
127 set mouseshape+=n:beam,v:beam | " display a text input cursor even in normal and selection mode
128 set guicursor=n-v-c:ver30-Cursor-blinkon500-blinkoff500 | " how the caret looks like
129 set guitablabel=%t | " do not display full path as tabname
130 set guioptions+=m | " menu bar
131 set guioptions+=T | " toolbar
132 set guioptions+=r | " right-hand scroll bar
133 set guioptions-=c | " use console dialogs instead of popups
134 set guioptions+=a | " autoselect: copy&paste using middleclick
135 set guioptions+=e | " add tab pages
136 set guioptions+=p | " use gui pointer callback for x11
137 set toolbariconsize=large | " make the icon toolbar as big as possible
138 "set columns=80 | " set initial window width (so that it fits the terminals)
139else
140 if &term =~? 'mlterm\|xterm\|screen'
141 set t_Co=256 | " fixes incompatibilities with our color scheme
142 endif
143 set mouse=nh | " limits mouse usage to normal mode and help files, so that middle click text insertion works in insert mode
144 set title | " set the terminal caption
145 set icon | " sets the terminal icon to vim
146 set ttyfast | " modern terminals are all fast in a way
147 "set titleold="vim ended" | " set terminal title after closing vim
148 "set titlestring="VIM-CONSOLE" | " set window title
149 "if has('mouse')
150 "endif
151endif
152
153
154"================================================================================
155" custom commands...
156map <C-h> <C-w>h|map <C-j> <C-w>j| " window navigation shortcuts
157map <C-k> <C-w>k|map <C-l> <C-w>l| " window navigation shortcuts
158
159cmap w!! w !sudo tee % >/dev/null| " write :w!! to execute :w as root user
160
161" custom hotkeys...
162nnoremap <C-Tab> :tabnext<CR>| " lets one use CTRL+Tab to switch between tabs
163nnoremap <C-S-Tab> :tabprevious<CR>| " use CTRL+Shift+Tab to switch to preview tab
164
165nnoremap j gj|nnoremap k gk| " do not jump over wrapped lines
166
167nnoremap $ g$| " and make the $ key position the cursor after the last char of that line, not before
168nnoremap <End> g$| " and make the <End> key position the cursor after the last char of that line
169function ExtendedHome()
170 let column = col('.')
171 normal! ^
172 if column == col('.')
173 normal! 0
174 endif
175endfunction
176noremap <Home> ^
177noremap <silent> <Home> :call ExtendedHome()<CR>
178
179nnoremap <C-z> u
180
181
182
183" plugin hotkeys
184map <C-l> :TlistToggle<CR>| " bind TagList to Hotkey Ctrl+L
185inoremap <buffer> ( <C-X><C-o><C-p>(| " when opening a bracket: call the OmniComplete function, display the menu, but deselect the first entry (C-p)
186
187
188set makeprg=make\ test
189nnoremap <F5> :!make<CR>| " classic key binding: press F5 to compile and execute (if you have a Makefile with make test doing that)
190
191
192"================================================================================
193" deactivated on-demand commands (just in case one needs them one day)
194"
195" code completion: http://vim.wikia.com/wiki/Make_Vim_completion_popup_menu_work_just_like_in_an_IDE
196" reacts on CTRL+P, CTRL+Space
197"inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"
198"inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>"
199"inoremap <expr> <Down> pumvisible() ? "\<C-n>" : "\<Down>"
200"inoremap <expr> <Up> pumvisible() ? "\<C-p>" : "\<Up>"
201"inoremap <expr> <PageDown> pumvisible() ? "\<PageDown>\<C-p>\<C-n>" : "\<PageDown>"
202"inoremap <expr> <PageUp> pumvisible() ? "\<PageUp>\<C-p>\<C-n>" : "\<PageUp>"
203" set guiheadroom=0| " do not fill non-functional area of the empty editor with gtk background
204" map shift-right to visually select and so on
205"nnoremap <C-Right> El
206"nnoremap <S-Right> vl
207"nnoremap <S-Left> vj
208"nnoremap <S-Up> vk
209"nnoremap <S-Down> vj
210" noremap % v% " jump between braces and highlight
211"nnoremap <Home> ^
212"vmap <Home> ^
213"nnoremap <End> $
214"vmap <End> $
215"nnoremap <C-Tab> <C-PageDown>
216"nnoremap <C-S-Tab> <C-PageUp>
217":inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"
218"map <Esc>OA k|map <Esc>OB j|map <Esc>OC l|map <Esc>OD h| " allow cursor keys in insert mode
219"inoremap <expr> <Esc> pumvisible() ? "\<C-e>" : "\<Esc>" " breaks cursor keys!
220" binding ESC can easily break cursor key movement on the console (tricky, because gvim works)
221"inoremap <C-Space> <C-x><C-o>
222"inoremap <C-@> <C-Space>
223"
..