Просмотр исходного кода

Testing out wrap and wrap movement in vim

cinaeco 14 лет назад
Родитель
Сommit
2477b06e89
1 измененных файлов с 55 добавлено и 17 удалено
  1. 55 17
      vim/vimrc

+ 55 - 17
vim/vimrc

@@ -11,6 +11,10 @@ call pathogen#infect()
 set nocompatible "Don't have to try to be compatible with old vi
 set nocompatible "Don't have to try to be compatible with old vi
 set autoread "Read a file if it's changed from outside of vim
 set autoread "Read a file if it's changed from outside of vim
 
 
+" Enable filetype specific features
+filetype plugin on
+filetype indent on
+
 if version >= 700
 if version >= 700
     set mouse=a "mouse support for 7.x
     set mouse=a "mouse support for 7.x
 endif 
 endif 
@@ -29,7 +33,10 @@ set softtabstop=4 " let backspace delete indent
 set expandtab "change to single spaces
 set expandtab "change to single spaces
 set autoindent "use last line to set next indent
 set autoindent "use last line to set next indent
 set smartindent "guess harder, based on C-like language
 set smartindent "guess harder, based on C-like language
-set nowrap "do not wrap long lines of text
+set wrap "wrap long lines of text
+
+" Set backspace config
+set backspace=eol,start,indent
 
 
 
 
 """"""""
 """"""""
@@ -61,22 +68,22 @@ endif
 "" UI - Code Folding
 "" UI - Code Folding
 """"""""""""""""""""""""""""""""""""""""""""""""""""""""
 """"""""""""""""""""""""""""""""""""""""""""""""""""""""
 
 
-set foldmethod=indent
-set foldlevel=5
-set foldtext=MyFoldText()
-
-function! MyFoldText()
-    let line = getline(v:foldstart)
-    let indent = indent(v:foldstart)
-    let indentOnly = strpart(line, 0, indent-1)
-    let linecount = v:foldend+1 - v:foldstart
-    let plural = ""
-    if linecount != 1
-        let plural = "s"
-    endif
-    let foldtext = '+'.indentOnly.'... ('.linecount.' More lines)'
-    return foldtext
-endfunction
+"set foldmethod=indent
+"set foldlevel=5
+"set foldtext=MyFoldText()
+"
+"function! MyFoldText()
+"    let line = getline(v:foldstart)
+"    let indent = indent(v:foldstart)
+"    let indentOnly = strpart(line, 0, indent-1)
+"    let linecount = v:foldend+1 - v:foldstart
+"    let plural = ""
+"    if linecount != 1
+"        let plural = "s"
+"    endif
+"    let foldtext = '+'.indentOnly.'... ('.linecount.' More lines)'
+"    return foldtext
+"endfunction
 
 
 
 
 """"""""
 """"""""
@@ -102,6 +109,37 @@ imap II <Esc>
 map <leader>j o<Esc>k
 map <leader>j o<Esc>k
 map <leader>k O<Esc>j
 map <leader>k O<Esc>j
 
 
+
+""""""""
+"" Key Remaps - Movement and Windows
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+" Smart way to move btw. 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
+
 " window resizing
 " window resizing
 noremap + <C-w>10+
 noremap + <C-w>10+
 noremap - <C-w>10-
 noremap - <C-w>10-
+
+" mapping to make movements operate on 1 screen line in wrap mode
+function! ScreenMovement(movement)
+    if &wrap
+        return "g" . a:movement
+    else
+        return a:movement
+    endif
+endfunction
+
+onoremap <silent> <expr> j ScreenMovement("j")
+onoremap <silent> <expr> k ScreenMovement("k")
+onoremap <silent> <expr> 0 ScreenMovement("0")
+onoremap <silent> <expr> ^ ScreenMovement("^")
+onoremap <silent> <expr> $ ScreenMovement("$")
+nnoremap <silent> <expr> j ScreenMovement("j")
+nnoremap <silent> <expr> k ScreenMovement("k")
+nnoremap <silent> <expr> 0 ScreenMovement("0")
+nnoremap <silent> <expr> ^ ScreenMovement("^")
+nnoremap <silent> <expr> $ ScreenMovement("$")</expr></silent>