Skip to content

Instantly share code, notes, and snippets.

@jerome-pouiller
Created July 8, 2020 14:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jerome-pouiller/bd177032bd13a077e5d3f6fb508ee7f2 to your computer and use it in GitHub Desktop.
Save jerome-pouiller/bd177032bd13a077e5d3f6fb508ee7f2 to your computer and use it in GitHub Desktop.
function! KillAsEmacs()
"if selection:
" Act as Ctrl+x
if has("clipboard")
let reg = '+'
else
let reg = '"'
endif
if col(".") == 1
if get(g:, 'append_tick', -1) == b:changedtick
let tmp = getreg(reg, 1)
call setreg(reg, tmp . getline('.') . "\n")
undojoin | call deletebufline(bufname(), line('.'))
else
call setreg(reg, getline('.') . "\n")
call deletebufline(bufname(), line('.'))
endif
elseif col(".") == col("$")
if get(g:, 'append_tick', -1) == b:changedtick
let tmp = getreg(reg, 1)
call setreg(reg, getline('.') . tmp . "\n")
call setpos(".", [bufnr(), line("."), 1, 1])
undojoin | call deletebufline(bufname(), line('.'))
else
call setreg(reg, getline('.') . "\n")
call setpos(".", [bufnr(), line("."), 1, 1])
call deletebufline(bufname(), line('.'))
endif
else
let column = col(".") - 1
let keep = getline('.')[:column - 1]
let del = getline('.')[column:]
call setreg(reg, del)
call setline(".", keep)
endif
let g:append_tick = b:changedtick
endfunction
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment