aboutsummaryrefslogtreecommitdiff
path: root/after/ftplugin
diff options
context:
space:
mode:
authorjdhao <jdhao@hotmail.com>2022-03-27 00:04:39 +0800
committerjdhao <jdhao@hotmail.com>2022-03-27 00:04:39 +0800
commit9dbeb67de5a59d3beb11733a23354be94375d313 (patch)
treee65eb2e7a5d75fdf905ca8e646ae9205f5a791ec /after/ftplugin
parent36bdde7fc938af68112e9063e9b2550761fcab89 (diff)
[feat] add mapping to add hard linebreak for Markdown
Diffstat (limited to 'after/ftplugin')
-rw-r--r--after/ftplugin/markdown.vim22
1 files changed, 22 insertions, 0 deletions
diff --git a/after/ftplugin/markdown.vim b/after/ftplugin/markdown.vim
index 6e4f24e..efea5e5 100644
--- a/after/ftplugin/markdown.vim
+++ b/after/ftplugin/markdown.vim
@@ -45,3 +45,25 @@ function! AddListSymbol(type, ...) abort
call setline(line, new_text)
endfor
endfunction
+
+" Add hard line breaks for Markdown
+nnoremap <buffer><silent> \ :set operatorfunc=AddLineBreak<CR>g@
+xnoremap <buffer><silent> \ :<C-U> call AddLineBreak(visualmode(), 1)<CR>
+
+function! AddLineBreak(type, ...) abort
+ if a:0
+ let line_start = line("'<")
+ let line_end = line("'>")
+ else
+ let line_start = line("'[")
+ let line_end = line("']")
+ endif
+
+ for line in range(line_start, line_end)
+ let text = getline(line)
+ " add backslash to each line
+ let new_text = text . "\\"
+
+ call setline(line, new_text)
+ endfor
+endfunction