Vim Notes

Posted by Paweł Sacawa on Sunday, August 20, 2023
Last Modified on Tuesday, November 21, 2023

(Neo)Vim

VimScript

Opcje jako zmienne: let b:ft = &ft

Wtyczki

Ultisnips

Urywki (ang. snippets) z użyciem zastąpienia tekstu. Składnia ${<tab_stop_no/regular_expression/replacement/options}. Pełne informacje w pomocniku Ultisnips pod hasłem UltiSnips-transformations. Patrz niżej przykład:

snippet qD "qDebug() << ..." b
q${2/.+/C/}Debug($2) << ${1:${VISUAL:"hallo"}};
endsnippet

Opcje dla urywków są opisane w podrozdziale UltiSnips-transformations. Najważnejsze to:

  • b: Ekspansja jedynie na Poczatku wiersza
  • r: wyrażenie regularne
  • w: (z ang. word boundary) Pozwala na ekspansję kiedy <tab> jest poprzedzony dowolną granicą słowa. Domyślnie jest to dozwolone przy poprzedzającym odstęp.
  • i: (z ang. in word) ekspansja wewnątrz słów
  • A automatyczna ekspansja

Autopolecenia i Autogroupy (ang. autocommand/autogroup)

augroup AutoZapisPlikGrupa
  autocmd TextChanged,InsertLeave * if &buftype == "" | write | endif
augroup END
```
By usunąć grupę, trzeba najpierw ręcznie usunąć autopolecenie w nim zawarte:

```
autocmd! AutoZapisPlikGrupa TextChanged,InsertLeave
augroup! AutoZapisPlikGrupa
```