LINUX.ORG.RU

Прыжки по параграфам и выделение параграфов

 


1

1

1. В общем так, рассмотрим прыжки по параграфам. Позицию курсора буду указывать с помощью "-->":

aaaa
bbbb
cccc
dddd
eeee
-->
aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee

Делаем }

aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee
-->
aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee

Делаем {

aaaa
bbbb
cccc
dddd
eeee
-->
aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee

А не логичней было бы:

aaaa
bbbb
cccc
dddd
eeee
-->
aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee

Делаем } и прыгаем в

aaaa
bbbb
cccc
dddd
eeee

-->aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee

И еще раз }

aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
-->eeee

aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee
И еще раз }
aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee

-->aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee
А потом {
aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
-->eeee

aaaa
bbbb
cccc
dddd
eeee

aaaa
bbbb
cccc
dddd
eeee

Т.е осуществлять прыжки не по пустым строкам между параграфами, а на первую и последнюю строку параграфа. И получается так, что если нужно редактировать первую строку параграфа или последнюю, то после прыжков { и } нужно подправлять позицию с помощью одного нажатия j или k.

2. Выделение параграфов. Стоим на первой позиции параграфа. Нажимаем C-v} и получаем не выделенный параграф, а выделенный параграф + одна строка. Опять же, чтобы не вырезать\копировать +1 строку, надо нажать k, чтобы убрать выделение с лишней строки.

И первый и второй случай приводит к тому, что постоянно при прыжках и выделениях параграфов нажимаются корректирующие jk.

★★★★

Последнее исправление: bryak (всего исправлений: 3)

логичней было бы перестать заниматься хнёй, но это не для пионеров лора...

mos ★★☆☆☆
()
Ответ на: комментарий от slon

Спасибо, а то я уже костылить начал:

function! MyNextParagraph()
  let lastline = line('$')
  let myline = search('^\s*$', 'W')
  while matchend(getline(myline), '.*\S')-1 < 0
      if myline != lastline
          let myline += 1
      else
          break
      endif
  endwhile
  execute 'normal! '.myline.'G0'
endfunction

function! MyPrevParagraph()
    let lastline = line('$')
    let myline = search('^\s*$', 'bW')
    while matchend(getline(myline), '.*\S')-1 < 0
        if myline != 0
            let myline -= 1
        else
            break
        endif
    endwhile
    execute 'normal! '.myline.'G0'
endfunction

PS: set whichwrap+=b,s вроде ж по дефолту стоит

bryak ★★★★
() автор топика
Последнее исправление: bryak (всего исправлений: 1)

параграфами

Хренаграфами, блин. По-русски это называется абзац. Параграф в русском языке - это совсе другое.

anonymous
()
Ответ на: комментарий от anonymous

А есть ли смысл сцать против ветра.

anonymous
()

это абзац, товарищи!

что в HTML, что в MARKDOWN, каждый из этих «параграфов» сольётся в абзац

так, стоит ли ломать копья, перья и клавиатуры?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.