nmd_07
nmd_07

Reputation: 706

c, i and s commands combined in VIM

I've been using VIM for a while and it surprises me each time. Under "Building Sentences" section in this tutorial, I saw the combination of commands cis and yip. I have used Vim quite a while and I am familiar with most commands in Normal Mode. I also know combining the commands in a meaningful way to produce combined actions.

However, the examples I showed above (cis and yip) totally broke my understanding of VIM command system in normal mode. "c" stands for change, "i" stands for insert and "s" stands for substitute but combined action is different than I would expect. I also went through VIM help files but never saw an example illustrating given usage.

Could someone clarify what's going on ?

Upvotes: 1

Views: 1662

Answers (3)

B.G.
B.G.

Reputation: 6016

In this case i does not stand for Insert and s not for substitute. cis = change inner sentence.

This is completly logic once you understand the basic principle. Each command is like a sentence, it needs an Verb(Action) and an Noun(Object) and there are modifiers.

So the first button is your action C (Change). Now the following keystrokes will not be actions, until the c action ended (Until an Object is provided, or an invalid sequence is inserted). I (inner) is a modifier here and S the Object (Sentence).

I find this especially usefull for Changing words. if you only press cw on a word, you have to have the cursor on the beginning of the word. With ciw you can change the whole word regardless of the cursor position (Note if you have / or some other seperators in the word, you maybe need ciW)

Upvotes: 3

Kent
Kent

Reputation: 195039

same letter can have different meanings. E.g. (/{ move to sentences/paragraph back, but ci( or ci{ means change in (...)/{...}.

Same as your s case, s in normal mode alone, does delete & start insert, however in cis, das means sentence.

p case: in normal mode alone, means paste, however in cip, yap ... means paragraph.

:h text-objects

will show you the concept of text-objects. It is a must skill for vim user. ;-)

Upvotes: 1

sebastian schön
sebastian schön

Reputation: 316

cis

In vim help it is described as follows

:help c

"Delete {motion} text [into register x] and start insert …"

The next part of the command cis refer to the "motion" part. These commands are for text object selection. An explanation on the different types of text object selections can you get here:

:help text-objects

e.g. for is – "inner sentence", select [count] sentences …

Analog to the explanation above its the same with yip

:help y

"Yank {motion} text [into register x] … "

And the text selection part yip

ip – "inner paragraph", select [count] paragraphs (see paragraph) …

Upvotes: 7

Related Questions