aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Buckley-Houston2022-05-11 15:01:35 +0000
committerThomas Buckley-Houston2022-05-11 15:01:35 +0000
commitcf041e18f46d95de44ae61dac4785fea68a6a21b (patch)
tree13d83f1a4188a12a5c926ba8a0e25fba98c46f5c
parente3f89438582c12b4d058dd7752c294ad6bb33fac (diff)
Allow indentation to be repeated
-rw-r--r--autoload/novim_mode.vim11
-rw-r--r--spec/novim_mode_spec.rb25
-rw-r--r--spec/spec_helper.rb10
3 files changed, 42 insertions, 4 deletions
diff --git a/autoload/novim_mode.vim b/autoload/novim_mode.vim
index 9d57c15..169d39a 100644
--- a/autoload/novim_mode.vim
+++ b/autoload/novim_mode.vim
@@ -175,13 +175,13 @@ function! g:SetNoVimModeShortcuts()
" Indenting
if g:novim_mode_use_indenting == 1
" TODO: In Neovim TAB doesn't work in mswin selection mode, but SHIFT+TAB does??
- snoremap <Tab> <C-O>>gv
+ snoremap <Tab> <C-O>>gv<C-G>
inoremap <M-]> <C-T>
- snoremap <M-]> <C-O>>gv
+ snoremap <M-]> <C-O>>gv<C-G>
" Unindenting
- snoremap <S-Tab> <C-O><gv
+ snoremap <S-Tab> <C-O><gv<C-G>
inoremap <M-[> <C-D>
- snoremap <M-[> <C-O><gv
+ snoremap <M-[> <C-O><gv<C-G>
endif
if g:novim_mode_use_finding == 1
@@ -205,13 +205,16 @@ function! g:SetNoVimModeShortcuts()
" the last *text* activity.
inoremap <silent> <C-Z> <C-O>u
snoremap <silent> <C-Z> <Esc><C-O>u
+ vnoremap <silent> <C-Z> <Esc><C-O>u
" Map CTRL+u as well for now just because by default it deletes the line above
" the cursor.
inoremap <silent> <C-U> <C-O>u
snoremap <silent> <C-U> <Esc><C-O>u
+ vnoremap <silent> <C-U> <Esc><C-O>u
" Redo
inoremap <silent> <C-Y> <C-O><C-R>
snoremap <silent> <C-Y> <Esc><C-O><C-R>
+ vnoremap <silent> <C-Y> <Esc><C-O><C-R>
endif
" Useful, but not necessarily core or conventional, shortcuts for manipulating
diff --git a/spec/novim_mode_spec.rb b/spec/novim_mode_spec.rb
index c784772..d513d13 100644
--- a/spec/novim_mode_spec.rb
+++ b/spec/novim_mode_spec.rb
@@ -111,6 +111,31 @@ describe 'Selecting' do
EOF
end
+ specify 'ALT+] indents' do
+ initial <<-EOF
+ a line of text
+ EOF
+
+ type '<S-End>'
+ type '<M-]>'
+ type '<M-]>'
+
+ final_with_indents "\t\ta line of text\n"
+ end
+
+ specify 'Shift-Tab or ALT+[ indents' do
+ initial <<-EOF
+ a line of text
+ EOF
+
+ type '<S-End>'
+ type '<M-]>'
+ type '<M-]>'
+ type '<S-Tab>'
+
+ final_with_indents "\ta line of text\n"
+ end
+
specify 'CTRL+D selects the word under the cursor' do
initial <<-EOF
a line of text
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index cfe5a51..c09f394 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -40,6 +40,11 @@ def load_file_content
IO.read(@file).strip
end
+def load_file_content_unstripped
+ vim.write
+ IO.read(@file)
+end
+
def type(string)
string.scan(/<.*?>|./).each do |key|
if key =~ /<.*>/
@@ -60,6 +65,11 @@ def final(string)
expect(load_file_content).to eq expected
end
+def final_with_indents(string)
+ expected = string
+ expect(load_file_content_unstripped).to eq expected
+end
+
def use_extension(ext)
@ext = ext
end