Portál AbcLinuxu, 10. května 2025 05:36

Dotaz: VIM :bd [Scratch] nefunguje - smaze posledni buffer misto označeného

9.8.2009 16:57 Kroko | skóre: 22
VIM :bd [Scratch] nefunguje - smaze posledni buffer misto označeného
Přečteno: 186×
Odpovědět | Admin
Zdravím,

potřebuji smazat otevřený buffer s názvem [Scratch] , zkoušel jsem to pomocí příkazu: :bd [Scratch] ale to mi pokaždé smaže jen aktuální buffer jako by tam ten název vůbec nebyl :(

Mazání přes číslo bufferu nejde protože to číslo neznam.

Díky
http://kroko.evesnight.net
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

9.8.2009 17:48 Ash | skóre: 53
Rozbalit Rozbalit vše Re: VIM :bd [Scratch] nefunguje - smaze posledni buffer misto označeného
Odpovědět | | Sbalit | Link | Blokovat | Admin
Potřeba escapovat jako v shellu, kde [abc] označuje něco jmenujícího se a nebo b nebo c.
:bd \[Scratch\]
zobrazení čísla:
:buffers
  1 %a   "[Scratch]"                    line 1
  2      "somefile"                     line 0
10.8.2009 16:26 Kroko | skóre: 22
Rozbalit Rozbalit vše Re: VIM :bd [Scratch] nefunguje - smaze posledni buffer misto označeného
Vzoru \[Scratch\] nevyhovuje žádný buffer

i přesto že:
:ls
  2 %a   "xxxxxxxxxxxxxxxxxxxxxx"         řádek 99
  7  a   "xxxxxxxxxxxxxxxxxxxxxxxxxxxx" řádek 0
 11  a-  "[Scratch]"                    řádek 0
http://kroko.evesnight.net
10.8.2009 23:05 Ash | skóre: 53
Rozbalit Rozbalit vše Re: VIM :bd [Scratch] nefunguje - smaze posledni buffer misto označeného
A ten scratch buffer vám vytváří kdo/co? Plugin scratch.vim? Opravdu jen potřebujete "zavřít buffer se jménem [Scratch]" nebo by se to dalo řešit i jinak (vůbec ho neotvírat a pod.). Když je buffer aktuálním bufferem tak zavřít jde? Zavřít přes čílo bufferu jde? (:bd 11)
11.8.2009 12:10 Kroko | skóre: 22
Rozbalit Rozbalit vše Re: VIM :bd [Scratch] nefunguje - smaze posledni buffer misto označeného
Ano, přes číslo to smaže v pořádku.

Potřebuju smazat ten bufer, klidně i přes číslo pokud bych věděl jaké má.

Otvírám to pomocí funkce na kontrolu syntaxe php viz. (u každého řádku jsem přidal popis):

   map <F8> :call CompileRunPhp()<CR>


   func CompileRunPhp()
         exec "w!"    // ulozi aktualni soubor
         let fileName = bufname('%')    // zapamatuje si nazev bufferu
     // zde jsem se pokousel smazat to puvodni okno
         exec "copen"   // zde se otevre novy buffer
         exec "setlocal modifiable"    // nastavi se na modifikovany aby se nize mohl zapsat vystup kontroly
         exec "setlocal buftype=nofile"    // neni to soubor - zde se automaticky prejmenuje buffer na [Scratch]
         exec ":r !php5 -l ".fileName     // provede se kontrola syntaxe a vysledek se hodi do bufferu
         exec "setlocal nomodifiable"     // vrati se do stavu nemodifikace
   endfunction

Takže to že to nemůže najít je v příkazovém režimu, to když to vrazim sem do funkce tak zas hlásí pokud neni žádnej otevřenej tak, že neni žádnej a pokud je tak že tomu výrazu odpovídá více bufferu. Ja uz jsem z toho jelen.

Pokud by byla nějaká jiná možnost jak zobrazit ten výstup z kontroly syntaxe stačilo by to taky.

http://kroko.evesnight.net
11.8.2009 13:58 Ash | skóre: 53
Rozbalit Rozbalit vše Re: VIM :bd [Scratch] nefunguje - smaze posledni buffer misto označeného
Aha, no já to nechávám zobrazit jen do shellu
map <F9> :update<cr>:!php -l %<cr>
nedělám tolik syntaktických chyb abych dohledával nejaký errorformat (aby fungovalo :cn :cp atd. jako v C), nicméně nasazení tohoto bych viděl jako lepší než zobrazení do bufferu. Když tak lehce polechtám google tak třeba Runtime syntax check for php ale neověřoval jsem funkčnost.
11.8.2009 14:05 Ash | skóre: 53
Rozbalit Rozbalit vše Re: VIM :bd [Scratch] nefunguje - smaze posledni buffer misto označeného
Tak třeba
:set errorformat=%m\ in\ %f\ on\ line\ %l
:set makeprg=php\ -l\ %
:make
funguje celkem dobře.
13.8.2009 07:08 Kroko | skóre: 22
Rozbalit Rozbalit vše Re: VIM :bd [Scratch] nefunguje - smaze posledni buffer misto označeného
nedělám tolik chyb .... to mě vážně pobavilo :D

v shellu jsem to měl také, ale občas když člověk hodně moc pospíchá tak tam nadělá pár překlepů ...
http://kroko.evesnight.net
13.8.2009 07:32 Kroko | skóre: 22
Rozbalit Rozbalit vše Re: VIM :bd [Scratch] nefunguje - smaze posledni buffer misto označeného
tak to zrovna moc nefunguje :/
http://kroko.evesnight.net
11.8.2009 14:50 Ash | skóre: 53
Rozbalit Rozbalit vše Re: VIM :bd [Scratch] nefunguje - smaze posledni buffer misto označeného
exec "setlocal buftype=nofile"    // neni to soubor - zde se automaticky prejmenuje buffer na [Scratch]
No ve vimu u copen vidím:
The window will contain a special buffer, with
'buftype' equal to "quickfix".  Don't change this!
což ve vimu nebývá tak často, tak důrazně řečeno, tak možná je v tom nějaký háček.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.