Arhn - архитектура программирования

VIM автоматически изменяет размер сфокусированного окна

Я медленно изучаю vim и его мощные возможности. У меня вопрос по поводу разделения окон (в основном горизонтального разделения). Есть ли способ автоматически изменить размер текущего выбранного (сфокусированного) окна? Скажем, например, настроить так, чтобы сфокусированное окно всегда занимало 70% экрана.

Использование Ctrl-w (число) +/- каждый раз не очень эффективно, особенно когда я постоянно переключаюсь между несколькими файлами.

Также было бы здорово, если бы был способ ограничить его только горизонтально разделенными окнами.

vim
24.07.2012

Ответы:


1

Параметр 'winheight' определяет минимальное количество строк для текущего окна. Некоторые пользователи устанавливают значение 999 для «режима Rolodex». Следующее устанавливает это значение равным 70%:

:let &winheight = &lines * 7 / 10

Для чего-то более необычного вы можете подключиться к событию WinEnter через :autocmd, а затем установить высоту окна на N через :Nwincmd _. Глупый пример:

:autocmd WinEnter * execute winnr() * 2 . 'wincmd _'
24.07.2012
  • есть ли способ сделать первый вариант, но для вертикального разделения вместо горизонтального разделения? 07.01.2016
  • @thepickle: Да, используя вместо этого &winwidth и &columns. 09.01.2016

  • 2

    Похоже, вам нужно золотое сечение: автоматическое изменение размеров окон с помощью Золотое сечение.

    Как только я узнал, что вы можете отключить «автоматическую» часть золотого сечения, я начал использовать его сам со следующими настройками:

    " Don't resize automatically.
    let g:golden_ratio_autocommand = 0
    
    " Mnemonic: - is next to =, but instead of resizing equally, all windows are
    " resized to focus on the current.
    nmap <C-w>- <Plug>(golden_ratio_resize)
    " Fill screen with current window.
    nnoremap <C-w>+ <C-w><Bar><C-w>_
    
    27.07.2012
  • это звучит довольно интересно, я попробую. 31.07.2012
  • Не могу сказать бомба в самолете, но этот плагин действительно бомба (у) 23.10.2016

  • 3

    Я использую это сопоставление для разделенных экранов:

    nnoremap <C-j>  <C-w>j
    nnoremap <C-k>  <C-w>k
    nnoremap <C-h>  <C-w>h
    nnoremap <C-l>  <C-w>l
    nnoremap c<C-j> :bel sp new<cr>
    nnoremap c<C-k> :abo sp new<cr>
    nnoremap c<C-h> :lefta vsp new<cr>
    nnoremap c<C-l> :rightb vsp new<cr>
    nnoremap g<C-j> <C-w>j<C-w>_
    nnoremap g<C-k> <C-w>k<C-w>_
    nnoremap g<C-h> <C-w>h<C-w>_
    nnoremap g<C-l> <C-w>l<C-w>_
    nnoremap d<C-j> <C-w>j<C-w>c
    nnoremap d<C-k> <C-w>k<C-w>c
    nnoremap d<C-h> <C-w>h<C-w>c
    nnoremap d<C-l> <C-w>l<C-w>c
    

    Таким образом, если вы хотите переключаться между разбиениями, вы можете использовать C-hjkl. Если вы хотите "создать" разделение, вы можете использовать cC-hjkl. Если вы хотите максимизировать разделение, вы можете использовать gC-hjkl. И если вы хотите удалить разделение, вы можете использовать dC-hjkl.

    Если вы хотите конкретно 70% вместо максимизированного, что вы могли бы использовать

    nnoremap g<C-j> <C-w>j:let &winheight = &lines * 7 / 10<cr>
    

    Например.

    24.07.2012
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..