From 4acfad1215f23495a1121d48a052194138859f4c Mon Sep 17 00:00:00 2001 From: WuJunkai2004 Date: Wed, 23 Jul 2025 02:33:35 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=BA=86tab?= =?UTF-8?q?=E6=97=B6=E6=97=A0=E6=B3=95=E6=A0=B9=E6=8D=AE=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E8=BF=9B=E8=A1=8C=E7=BC=A9=E8=BF=9B=E7=9A=84?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 当用户键入tab时,若无可接受的补全, 理应根据用户设置进行缩进。但是直接 填入\t实际上会破坏用户设置的缩进。 因此,改为使用feedkey填入不同的值。 --- plugin/fittencode.vim | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/plugin/fittencode.vim b/plugin/fittencode.vim index 97e6260..671742c 100644 --- a/plugin/fittencode.vim +++ b/plugin/fittencode.vim @@ -6,6 +6,7 @@ if exists("g:loaded_fittencode") endif let g:loaded_fittencode = 1 let g:accept_just_now = 0 +let g:fitten_accepted = v:false let s:hlgroup = 'FittenSuggestion' function! SetSuggestionStyle() abort @@ -193,12 +194,12 @@ endfunction function! FittenAcceptMain() echo "Accept" - let default = pumvisible() ? "\" : "\t" if mode() !~# '^[iR]' || !exists('b:fitten_suggestion') - return g:fitten_accept_key == "\t" ? default : g:fitten_accept_key + return '' endif + let g:fitten_accepted = v:true let l:text = b:fitten_suggestion call ClearCompletion() @@ -224,16 +225,21 @@ endfunction function FittenAccept() let g:accept_just_now = 2 + let g:fitten_accepted = v:false + let l:accept = FittenAcceptMain() - let l:accept_lines = split(l:accept, "\n", v:true) + if g:fitten_accepted == v:false + let l:feed = g:fitten_accept_key == '\t' ? "\" : g:fitten_accept_key + call feedkeys(l:feed, 'n') + return + endif + let l:accept_lines = split(l:accept, "\n", v:true) let l:is_first_line = v:true for line in l:accept_lines call FittenInsert(line, l:is_first_line) let l:is_first_line = v:false endfor - - return "" endfunction function! FittenAcceptable() From a450b1717165cd385e6ae2622b2f9b16dbb65f46 Mon Sep 17 00:00:00 2001 From: WuJunkai2004 Date: Wed, 23 Jul 2025 15:53:02 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E5=8C=96=E7=AE=80=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=EF=BC=8C=E8=88=8D=E5=8E=BB=E6=97=A0=E7=94=A8=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 脚本149行可以保证返回值非空。 因此可以由l:accept直接判断是否接收了补全。 --- plugin/fittencode.vim | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/plugin/fittencode.vim b/plugin/fittencode.vim index 671742c..1ea1247 100644 --- a/plugin/fittencode.vim +++ b/plugin/fittencode.vim @@ -6,7 +6,6 @@ if exists("g:loaded_fittencode") endif let g:loaded_fittencode = 1 let g:accept_just_now = 0 -let g:fitten_accepted = v:false let s:hlgroup = 'FittenSuggestion' function! SetSuggestionStyle() abort @@ -199,7 +198,6 @@ function! FittenAcceptMain() return '' endif - let g:fitten_accepted = v:true let l:text = b:fitten_suggestion call ClearCompletion() @@ -225,11 +223,11 @@ endfunction function FittenAccept() let g:accept_just_now = 2 - let g:fitten_accepted = v:false let l:accept = FittenAcceptMain() - if g:fitten_accepted == v:false - let l:feed = g:fitten_accept_key == '\t' ? "\" : g:fitten_accept_key + if empty(l:accept) + let l:feed = pumvisible() ? "\" : "\" + let l:feed = g:fitten_accept_key == '\t' ? l:feed : g:fitten_accept_key call feedkeys(l:feed, 'n') return endif