From 46ec34826ea351367ebc8ac0841c1866edd57348 Mon Sep 17 00:00:00 2001 From: Julian Prein Date: Tue, 27 Dec 2022 04:24:21 +0100 Subject: [PATCH] vim:keys: Map display movements only when wrapping --- .config/vim/vimrc.d/40-keys.vim | 39 ++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/.config/vim/vimrc.d/40-keys.vim b/.config/vim/vimrc.d/40-keys.vim index f436de3..3cba4e8 100644 --- a/.config/vim/vimrc.d/40-keys.vim +++ b/.config/vim/vimrc.d/40-keys.vim @@ -200,16 +200,35 @@ nmap Q gqap " Swap movement mappings that act on display lines with the real ones, making it " easier to navigate long wrapped lines. -noremap j gj -noremap k gk -noremap 0 g0 -noremap ^ g^ -noremap $ g$ -noremap gj j -noremap gk k -noremap g0 0 -noremap g^ ^ -noremap g$ $ +function! MapWrapMovement() + if &wrap + noremap j gj + noremap k gk + noremap 0 g0 + noremap ^ g^ + noremap $ g$ + noremap gj j + noremap gk k + noremap g0 0 + noremap g^ ^ + noremap g$ $ + else + noremap j j + noremap k k + noremap 0 0 + noremap ^ ^ + noremap $ $ + noremap gj gj + noremap gk gk + noremap g0 g0 + noremap g^ g^ + noremap g$ g$ + endif +endfunction +augroup WrapMovementMappings + au! + au OptionSet wrap call MapWrapMovement() +augroup END " Convert Unix timestamp to human readable " Mnemonic: "Unix timestamp convert" with pun to UTC