Я могу транспонировать файл в Vim?

Проблема может возникнуть из-за того, что отношения не установлены в экземпляре компании.

Не могли бы вы попытаться добавить человека в корпоративный эфир, позвонив c.getPersons().add(p1.getName(), p1) или изменив метод setcompany(...) на

public void setcompany(Company c) {
    c.getPersons().add(this.getName(), this)
    this.company = c;
}
13
задан ib. 7 September 2011 в 05:31
поделиться

3 ответа

Вот команда на языке Vim. Таким образом, Вы не должны компилировать Vim с поддержкой +python.

function! s:transpose()
    let maxcol = 0
    let lines = getline(1, line('$'))

    for line in lines
        let len = len(line)
        if len > maxcol 
            let maxcol = len
        endif
    endfor

    let newlines = []
    for col in range(0, maxcol - 1)
        let newline = ''
        for line in lines
            let line_with_extra_spaces = printf('%-'.maxcol.'s', line)
            let newline .= line_with_extra_spaces[col]
        endfor
        call add(newlines, newline)
    endfor

    1,$"_d
    call setline(1, newlines)
endfunction

command! TransposeBuffer call s:transpose()

Вставьте это недавно создало .vim файл в dir энергии/плагина или поместило это в Ваш [. _] vimrc.
Выполниться :TransposeBuffer транспонировать текущий буфер

12
ответ дан 1 December 2019 в 20:57
поделиться

Поддержка Vim многих языков сценариев встроила - посмотрите интерфейс Python как пример.

Просто измените vim.current.buffer соответственно и Вы установлены.

Быть немного более конкретным:

function! Rotate()
python <<EOF
import vim, itertools
max_len = max((len(n) for n in vim.current.buffer))

vim.current.buffer[:] = [
    ''.join(n) for n in itertools.izip(
        *( n + ' ' * (max_len - len(n))
           for n in vim.current.buffer))]
EOF
endfunction
10
ответ дан 1 December 2019 в 20:57
поделиться

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

qa
1G0
xGo<Esc>p
1G0j
xGp
q

Это даст Вам макрос, который Вы могли выполнить против примера выше, или любые строки с 2 строками той же длины. Только необходимо знать длину строки, таким образом, можно выполнить итерации операции корректное число времени

16@a

Довольно основное решение, но это работает.

5
ответ дан 1 December 2019 в 20:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: