Kaynağa Gözat

Testing out wrap and wrap movement in vim

cinaeco 14 yıl önce
ebeveyn
işleme
2477b06e89
1 değiştirilmiş dosya ile 55 ekleme ve 17 silme
  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 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
     set mouse=a "mouse support for 7.x
 endif 
@@ -29,7 +33,10 @@ set softtabstop=4 " let backspace delete indent
 set expandtab "change to single spaces
 set autoindent "use last line to set next indent
 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
 """"""""""""""""""""""""""""""""""""""""""""""""""""""""
 
-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>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
 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>