surround.vim

Pardonu, asciinema-player ne funkcias sen Ĝavoskripo.

Kiam mi programas kelkfoje mi bezonas ŝanĝi signojn aŭ etikedojn (en marklingvoj), kiuj ĉirkaŭas komandojn. Ekzemple en Python kelkfoje mi devas anstataŭigi duoblajn citilojn per simplaj citiloj; kio estas iom malkomforta, ĉar vi devas iri al la komencaj kaj al la finaj citiloj kaj anstataŭigi ilin unu post la alia.

Por ĉi tiu problemo estas solvo: la kromaĵo surround.vim por la redaktiloj Vim kaj Neovim. Per ĝi mi povas tre facile anstataŭigi la signojn aŭ etikedojn. Por anstataŭigi print("Hello, world!") per print('Hello, world!') sufiĉas premi cs"' en la normala reĝimo ene de la citiloj. Mi ankaŭ povas anstataŭigi la citilojn per etikedoj de marklingvoj kiel HTML kaj inverse. Ekzemple mi povas anstataŭigi 'Hello, world!' per <h1>Hello, world!</h1> skribante cs'<h1>.

La komando por anstataŭigi povas ŝajni malfacile memorebla, sed ĝi ne estas, se vi scias la anglan kaj pensas, ke cst" intencas diri change surrounding tag [with] " kaj cs"' intencas diri change surrounding " with '.

Krome ĉi tiu kromaĵo ebligas forigi ĉirkaŭ kie ni troviĝas. Ekzemple, se vi volas forigi la citilojn en print('Hello, world!'), vi nur devas skribi ds'.

Ni ankaŭ povas aldoni HTML-etikedojn ĉirkaŭ vorto aŭ vortoj. Skribi ysiw<em> en normala reĝimo kun la kursoro ene de la vorto «saluton» ĉirkaŭas la vortojn per la etikedo em: <em>saluton</em>. yss) ĉirkaŭas per rondaj krampoj linion, kie la kursoro troviĝas. Por havi pli da kontrolo pri la ĉirkaŭota teksto oni povas uzi la vidan reĝimon. Kiam vi havu iun tekston elektitan, premu S kaj skribu la signon, etikedon aŭ signojn por ĉirkaŭi la tekston.

Sed kion fari, se vi volas aldoni etikedon por PHP (ĝia sintakso estas <?php kodo?>)?. Por fari tion ni devas aldoni la jenan linion al nia agorda dosiero de Vim (.vimrc): autocmd FileType php let b:surround_45 = "<?php \r ?> Per ĉi tio ni povas ĉirkaŭi kelkajn kodajn liniojn per la etikedoj de PHP, elektante tekston en vida reĝimo kaj premante S-, se ni prilaboras dosieron skribitan per PHP. Ni povas ankaŭ cirkaŭi linion en normala reĝimo premante yss-.

Sekve estas skribitaj ekzemploj de tio, kion vi povas fari per surround.vim. La signo markita en la kolumno de la origina teksto reprezentas la kursoran pozicion. Memoru, ke la kursoro devas troviĝi inter la citiloj aŭ etikedoj, kiujn vi volas anstataŭigi. Vi povas vidi kiel ili funkcias en la video, kiun mi montris al vi en la komenco de ĉi tiu artikolo.

Origina teksto Komando Rezulto
"Look ma, I'm HTML!" cs"<q> <q>Look ma, I'm HTML!</q>
if x>3 { ysW( if ( x>3 ) {
my $str = whee!; vllllS' my $str = 'whee!';
<div>Yo!</div> dst Yo!
Hello world! yssB {Hello world!}

Komentoj