Ich denke , es wäre sinnvoll sein , die Möglichkeit zu tauschen haben true
und false
schnell in der Code - Werten, mit Kombination ctrl+ aoder ctrl+ x. Gibt es ein Plugin dafür oder etwas anderes?
Ich denke , es wäre sinnvoll sein , die Möglichkeit zu tauschen haben true
und false
schnell in der Code - Werten, mit Kombination ctrl+ aoder ctrl+ x. Gibt es ein Plugin dafür oder etwas anderes?
Antworten:
Ich habe ein Plugin ( toggle-bool ) geschrieben, um die booleschen Werte umzuschalten, die Sie ausprobieren können. Es unterstützt die folgenden booleschen Werte:
true
<-> false
yes
<-> no
on
<-> off
0
<-> 1
Es gibt switch.vim und es ist anpassbar.
Der Haupteinstiegspunkt des Plugins ist ein einzelner Befehl
:Switch
. Wenn der Befehl ausgeführt wird, sucht das Plugin unter dem Cursor nach einem bestimmten Muster und führt je nach Muster eine Substitution durch.
Zum Beispiel, wenn sich der Cursor true
im folgenden Code auf befindet:
flag = true
dann wird beim Ausführen :Switch
der true
Wille in false
.
Toggling true
/ false
und ähnliches wurde von vielen Plugin-Autoren implementiert. Zwei davon wurden bereits erwähnt:
Andere sind Toggle von Timo Teifel ( # 895 ), Montag von Stefan Karlsson ( # 1046 ), Toggle_words von Vincent Wang ( # 1676 ), Toggle_word von Alexandru Ungur ( # 1748 ), incbool.vim von Dmitry Petrov ( # 4361 , Github ) , nextval von Michael Arlt ( # 4536 , github ).
Nur für den Fall, dass Sie die Anzahl gemäß einer benutzerdefinierten Serie erhöhen möchten, z. B. der Fibonacci-Serie, lesen Sie den Nexus von Barry Arthur ( Github ).
Ctrl-A/X
Allerdings folgen nicht alle standardmäßig der Idee Ctrl-A/X
, einen neuen Befehl und / oder eine neue Zuordnung (einschließlich switch.vim und toggle-bool ) zu erweitern, sondern zu definieren . Ich möchte die Plugins hervorheben, die sofort aufgeladen werden, Ctrl-A/X
und daher standardmäßig angeben, was das OP verlangt hat:
Ein verwandtes Plugin, das ebenfalls erweitert wird, Ctrl-A/X
ist das Speeddating von Tim Pope ( # 2120 , Github ), mit dem Sie Daten erhöhen können.
Einige Plugins erlauben es, ein zweites Ctrl-A/X
Inkrementor-Plugin als Fallback zu kombinieren , z
SwapIt von Michael Brown:
nmap <Plug>SwapItFallbackIncrement <Plug>SpeedDatingUp
nmap <Plug>SwapItFallbackDecrement <Plug>SpeedDatingDown
vmap <Plug>SwapItFallbackIncrement <Plug>SpeedDatingUp
vmap <Plug>SwapItFallbackDecrement <Plug>SpeedDatingDown
Zyklus durch Bootleq:
map <silent> <Plug>CycleFallbackNext <Plug>SpeedDatingUp
map <silent> <Plug>CycleFallbackPrev <Plug>SpeedDatingDown
switch.vim von Andrew Radev:
nnoremap <c-a> :if !switch#Switch()<bar>call speeddating#increment()<bar>endif<cr>
nnoremap <c-x> :if !switch#Switch({'reverse': 1})<bar>call speeddating#decrement()<bar>endif<cr>
Hinweis
Wenn Sie das Suchverhalten des integrierten Geräts verwenden Ctrl-A/X
(nächstmöglichen Wert in Zeile zum Inkrementieren suchen ), kann das Aufladen diese stören.
Ändern Sie die Zuordnung auf das, was Sie verwenden möchten
Das Rückgängigmachen ist für den Fall, dass Sie es über einem Leerzeichen verwenden, da ciw das Leerzeichen anstelle des Wortes bearbeitet (und es keine einfache Möglichkeit gibt, zuverlässig zum richtigen Wort zu gelangen).
function SwapBool ()
let s:w = expand("<cword>")
if s:w == "false"
normal ciwtrue
if expand("<cword>") != "true"
normal u
endif
elseif s:w == "true"
normal ciwfalse
if expand("<cword>") != "false"
normal u
endif
endif
endfunction
noremap <C-F> :call SwapBool()^M
Beachten Sie auch, dass ^ M sein muss <C-V><Enter>
, nicht wörtlich ^ M.
<C-a>
und <C-x>
wenn das aktuelle Wort kein Boolescher Wert ist, kann OP diese Zuordnungen auf diese Weise wirklich verwenden. Sie können auch <CR>
anstelle von ^M
in Ihrem Mapping verwenden, und es ist in der Regel eine bewährte Methode, einen Modus für Ihren map
Befehl bereitzustellen , hier nnoremap
wäre angemessener als noremap
.