2015-02-05 2 views
3

Я часто забываю, как вставлять в режиме визуального блока и читать снова the answer Shift+i.Почему нижний регистр [i] не работает в режиме визуального блока?

Как Honghe.Wu чудеса в своем комментарии:

Почему строчными я не работает в визуальном режиме?

Какова техническая причина?

ответ

5

Причина потому я и не ведут себя, как и в обычном режиме во всех визуальных режимов является то, что я и используются для расширения выбора для текстовых объектов. Как вы можете видеть в :help visual-operators:

4. Operating on the Visual area 

The operators that can be used are: 
    ~ switch case     
    d delete      
    c change (4)     
    y yank       
    > shift right (4)     
    < shift left (4)     
    ! filter through external command (1)  
    = filter through 'equalprg' option command (1)  
    gq format lines to 'textwidth' length (1)  

The objects that can be used are: 
    aw a word (with white space)   
    iw inner word     
    aW a WORD (with white space)   
    iW inner WORD     
    as a sentence (with white space)   
    is inner sentence     
    ap a paragraph (with white space)   
    ip inner paragraph     
    ab a() block (with parenthesis)   
    ib inner() block     
    aB a {} block (with braces)    
    iB inner {} block     
    at a <tag> </tag> block (with tags)   
    it inner <tag> </tag> block    
    a< a <> block (with <>)     
    i< inner <> block     
    a[ a [] block (with [])     
    i[ inner [] block     
    a" a double quoted string (with quotes)   
    i" inner double quoted string   
    a' a single quoted string (with quotes)   
    i' inner simple quoted string   
    a` a string in backticks (with backticks)  
    i` inner string in backticks   

Additionally the following commands can be used: 
    : start Ex command for highlighted lines (1) 
    r change (4)     
    s change      
    C change (2)(4)     
    S change (2)     
    R change (2)     
    x delete      
    D delete (3)     
    X delete (2)     
    Y yank (2)      
    p put      
    J join (1)      
    U make uppercase     
    u make lowercase     
    ^] find tag      
    I block insert      
    A block append      

Так просто использовать block insert верхний регистр I или в block append верхний регистр A команд в режиме визуального блока.

4

Ввод команд iперед позицией курсора. В режиме визуального блока позиция курсора (обычно) представляет нижний правый угол выбора, а позиция курсора включена в блок.

Таким образом, семантика i не будет соответствовать, и именно поэтому она была исключена из реализации Vim (добавление, вероятно, было бы простым однострочным изменением исходного кода). Семантика соответствует I (вставьте до любой текст) и A (вставьте после любой текст), поэтому они доступны в режиме визуального блока.

+0

Отличное объяснение. По какой-то причине я до этого не допрашивал, я просто привык к доступным клавишам. –

+2

Также существует тот факт, что «I» запускает текстовый объект в любом визуальном режиме. – Ben

 Смежные вопросы

  • Нет связанных вопросов^_^