Portál AbcLinuxu, 12. května 2025 10:28
Řešení dotazu:
#include <stdio.h> int main (void) { int a; int b; int c; int d; /* za tento komentar chci vlozit */ return (0); }po:
#include <stdio.h> int main (void) { int a; int b; int c; int d; /* za tento komentar chci vlozit */ int a; int b;return (0); } int c; int d;Jde o Vim verze 7.2
INSERT INTO tab1 (name) VALUES ("abc"); INSERT INTO tab1 (name) VALUES ("def"); /* chci vytvorit novy SQL prikaz s temi stringy - mezi tyhle dva inserty */ INSERT INTO tab2 (num) VALUES (1); INSERT INTO tab2 (num) VALUES (2);výsledek:
INSERT INTO tab1 (name) VALUES ("abc"); INSERT INTO tab1 (name) VALUES ("def"); /* chci vytvorit novy SQL prikaz s temi stringy - mezi tyhle dva inserty */ abc defINSERT INTO tab2 (num) VALUES (1); INSERT INTO tab2 (num) VALUES (2);Jasně, kdyby to byl další insert, tak si zkopíruju celé řádky a blokově přepíšu to co potřebuju (tabulka, sloupce,...), ale o to tu teď nejde. Jde o to, jestli je tohle insert-replace chování správné a pokud ano, tak jak provést čistý insert s blokem textu?
abc defa vložil ho na prázdný řádek příkazem "p" (paste). Nevím k čemu to má být dobré? Každopádně se vim zachoval standardně, odsunul vše co je na následujících řádcích doprava a vložil blok tam, kam jste chtěl. Spíš bych čekal že ho budete vkládat třeba na místo kde je "1" aby blok
1 2nahradil blokem
abc def? Tak pokud najedete na jedničku a dáte "p", tak se to vloží tam, před(nebo za) 1 a 2 se vloží abc a def. 1 a 1 pak ještě musíte blokově smazat. Pokud chcete vytvořit nový SQL příkaz, tak ho ale musíte přece nejdřív vytvořit ;), tedy napsat nějaké to nové INSERT INTO a pak až vkládat blok, ne? Nic takového (ani pokus o to) ve vašem příkladu nevidím :( Takže nevím jestli se to chová nějak opravdu divně nebo jen něco divného děláte :)
Pokud chcete vytvořit nový SQL příkaz, tak ho ale musíte přece nejdřív vytvořit ;), tedy napsat nějaké to nové INSERT INTO a pak až vkládat blok, ne? Nic takového (ani pokus o to) ve vašem příkladu nevidím :( Takže nevím jestli se to chová nějak opravdu divně nebo jen něco divného děláte :)(OT, ale...) Já bych to řešil tak, že bych si nakopíroval hodnoty a pak přes makro bych doplnil to SQL okolo. Ale tak jak píšete by to taky šlo.
INSERT INTO tab1 (name) VALUES ("abc"); INSERT INTO tab1 (name) VALUES ("def"); /* chci vytvorit novy SQL prikaz s temi stringy - opravit tyto dva inserty */ INSERT INTO tab2 (num) VALUES (1); INSERT INTO tab2 (num) VALUES (2);
INSERT INTO tab1 (name) VALUES ("abc"); INSERT INTO tab1 (name) VALUES ("def"); /* chci vytvorit novy SQL prikaz s temi stringy - opravit tyto dva inserty */ INSERT INTO tab2 (num) VALUES (1abc); INSERT INTO tab2 (num) VALUES (2def);ještě smazat blokově 1 a 2 (bývalo by bylo lepší předem)
INSERT INTO tab1 (name) VALUES ("abc"); INSERT INTO tab1 (name) VALUES ("def"); /* chci vytvorit novy SQL prikaz s temi stringy - opravit tyto dva inserty */ INSERT INTO tab2 (num) VALUES (abc); INSERT INTO tab2 (num) VALUES (def);voilà. Další možnost:
INSERT INTO tab1 (name) VALUES ("abc"); INSERT INTO tab1 (name) VALUES ("def"); /* chci vytvorit novy SQL prikaz s temi stringy - opravit tento jeden insert (se nevleze) */ INSERT INTO tab2 (num) VALUES (1); DELETE * FROM tab2 where id='foo';
INSERT INTO tab1 (name) VALUES ("abc"); INSERT INTO tab1 (name) VALUES ("def"); /* chci vytvorit novy SQL prikaz s temi stringy - opravit tento jeden insert (se nevleze) */ INSERT INTO tab2 (num) VALUES (1abc); DELETE * FROM tab2 where id='foodef';moje chyba, neohlídal jsem si počet řádků.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.