aboutsummaryrefslogtreecommitdiff
path: root/plugin
diff options
context:
space:
mode:
authorJosh Rahm <rahm@google.com>2022-08-04 13:16:12 -0600
committerJosh Rahm <rahm@google.com>2022-08-04 13:16:12 -0600
commit3340b11176d467961ae8426091d53c6ad1a01d2c (patch)
tree49b7d8772081265088e69e7d7d50b747769418b0 /plugin
parent6f7c03150b25c2895c852e5068d8c890246ba231 (diff)
downloadfieldmarshal.vim-3340b11176d467961ae8426091d53c6ad1a01d2c.tar.gz
fieldmarshal.vim-3340b11176d467961ae8426091d53c6ad1a01d2c.tar.bz2
fieldmarshal.vim-3340b11176d467961ae8426091d53c6ad1a01d2c.zip
Add Fall.vim
Diffstat (limited to 'plugin')
-rw-r--r--plugin/fall.vim26
1 files changed, 26 insertions, 0 deletions
diff --git a/plugin/fall.vim b/plugin/fall.vim
new file mode 100644
index 0000000..3fba6d5
--- /dev/null
+++ b/plugin/fall.vim
@@ -0,0 +1,26 @@
+" Fall through whitespace.
+noremap <expr> <silent> <leader>k fall#fall('k', '^\s*$')
+noremap <expr> <silent> <leader>j fall#fall('j', '^\s*$')
+
+" Text object to fall through whitepacea
+onoremap <silent> <leader>k :<c-u>exec "normal! V" . fall#fall('k', '^\s*$')<cr>
+onoremap <silent> <leader>j :<c-u>exec "normal! V" . fall#fall('j', '^\s*$')<cr>
+
+" Text object to fall though whitespace, but exclude the last line.
+onoremap <silent> i<leader>k :<c-u>exec "normal! V" . fall#fall('k', '^\s*$') . "j"<cr>
+onoremap <silent> i<leader>j :<c-u>exec "normal! V" . fall#fall('j', '^\s*$') . "k"<cr>
+
+" Text object to fall though whitespace, but exclude the last line.
+onoremap <silent> i<leader>k :<c-u>exec "normal! V" . fall#fall('k', '^\s*$') . "j"<cr>
+onoremap <silent> i<leader>j :<c-u>exec "normal! V" . fall#fall('j', '^\s*$') . "k"<cr>
+
+" Text objects to describe "falling" down, and then "falling" up. Equivalent to
+" V<leader>kO<leader>j
+onoremap <silent> ai :<c-u>exec "normal! V"
+ \ . fall#fall('j', '^\s*$')
+ \ . "O"
+ \ . fall#fall('k', '^\s*$') <cr>
+onoremap <silent> ii :<c-u>exec "normal! V"
+ \ . fall#fall('j', '^\s*$')
+ \ . "kO"
+ \ . fall#fall('k', '^\s*$') . 'j' <cr>