Minor improvements + ]p and [p

* Improved visual selection
* Improved standard ]p and [p
* Fixed ruby autoindentation
This commit is contained in:
Talia 2017-11-01 12:43:42 +01:00
parent 18335cc569
commit c34d46cd2f

32
vimrc
View file

@ -125,19 +125,32 @@ function! QuickfixAddLine(filename, lnum, text)
call setqflist([{'filename': a:filename, 'lnum': a:lnum, 'desc': a:text}], 'a')
endfunction
" https://stackoverflow.com/a/6271254/4984564
" Original implementation: https://stackoverflow.com/a/6271254/4984564
function! VisualSelection()
if mode()=="v"
let [line_start, column_start] = getpos("v")[1:2]
let [line_end, column_end] = getpos(".")[1:2]
else
let [line_start, column_start] = getpos("'<")[1:2]
let [line_end, column_end] = getpos("'>")[1:2]
end
if (line2byte(line_start)+column_start) > (line2byte(line_end)+column_end)
let [line_start, column_start, line_end, column_end] =
\ [line_end, column_end, line_start, column_start]
end
let lines = getline(line_start, line_end)
if len(lines) == 0
return ''
endif
let lines[-1] = lines[-1][: column_end - 2]
let lines[-1] = lines[-1][: column_end - 1]
let lines[0] = lines[0][column_start - 1:]
return join(lines, "\n")
endfunction
function! StringReverse(str)
return join(reverse(split(str, ".\\zs")), "")
endfunc
" === GENERAL COMMANDS ===
command! L lopen | set number | set norelativenumber
command! LAddLine call LocationAddLine(expand("%"), line("."), getline("."))
@ -186,7 +199,16 @@ nnoremap dx 0"_d$
nnoremap dcx 0d$
nnoremap <leader>: :let @* = @:<CR>
nnoremap <expr> <S-r> ":%s/\\<".expand("<cword>")."\\>/"
vnoremap <expr> <S-r> "\<C-c>:redraw<CR>:%s/".VisualSelection()."/"
vnoremap <expr> <S-r> ":<C-u>%s/".VisualSelection()."/"
" Put in new line with indentation
nnoremap ]p :let [content, type]=
\[getreg(v:register), getregtype(v:register)] \|
\call setreg(v:register, content, "V")<CR>]p
\:call setreg(v:register, content, type)<CR>
nnoremap [p :let [content, type]=
\[getreg(v:register), getregtype(v:register)] \|
\call setreg(v:register, content, "V")<CR>[p
\:call setreg(v:register, content, type)<CR>
" Tabs vs. Spaces
nnoremap <C-tab> :setl expandtab!<CR>:set expandtab?<CR>
@ -419,11 +441,11 @@ endfunction
augroup rbindent
autocmd!
au BufNewFile,BufRead *.rb :set noexpandtab :retab!
au BufNewFile,BufRead *.rb :set noexpandtab | :retab!
au BufWritePre *.rb :let ts = &tabstop | set expandtab | set tabstop=2 | retab | let &tabstop=ts
au BufWritepost *.rb :set noexpandtab :silent! :undo :normal <S-tab>
au BufWritepost *.rb :set noexpandtab | :silent! :undo | :normal <S-tab>
augroup END
" --- Lua Stuff ---