Nano Hash - криптовалюты, майнинг, программирование

Проверить место изменения переменной в VIM? Или как установить shfitwidth?

Это не очень простой вопрос.

Я обнаружил, что "shiftwidth" для файлов python установлен на 4, а у меня они есть внизу моего .vimrc:

set tabstop=2                                                               
set shiftwidth=2                                                               
set softtabstop=2                                                              
set expandtab 

Ширина сдвига равна 2 для всех остальных типов файлов; но это 4 только для питона.

Я хочу знать, можно ли увидеть, где была изменена переменная (в моем случае ширина сдвига); если это невозможно, то в каких местах может быть изменена эта переменная ..? И есть ли способ сделать shiftwidth = 2 универсальным ... даже для файлов python? (Хотя также рекомендуется использовать 4 пробела для python, но я лично предпочитаю 2)

02.04.2014


Ответы:


1
:verbose set shiftwidth

сообщает вам, какое текущее значение и где оно было определено. См. :help :verbose.

Плагины типа файла создаются после того, как было инициировано соответствующее FileType событие, поэтому они переопределят параметры в вашем vimrc.


Грязный способ добавить настройки для конкретного типа файла в вашу конфигурацию - это добавить что-то вроде этого в ваш vimrc:

augroup Python
    autocmd!
    autocmd fileType python setlocal tabstop=2 shiftwidth=2 softtabstop=2 expandtab
augroup END

См. :help :autocmd.


Чистый способ - поместить желаемые настройки в пользовательский ftplugin.

Файл:

~/.vim/after/ftplugin/python.vim

Его содержание:

setlocal tabstop=2
setlocal shiftwidth=2
setlocal softtabstop=2
setlocal expandtab

Обратите внимание на использование setlocal вместо set, потому что вы не хотите, чтобы эти настройки применялись везде.

02.04.2014
  • Для небинарных опционов, таких как 'shiftwidth', не имеет значения, используете ли вы :verbose set shiftwidth или :verbose set shiftwidth?. Я считаю хорошей привычкой добавлять необязательный ?, потому что он действительно имеет значение для бинарных опционов. Например, :verbose set expandtab установит параметр 'expandtab', ничего не сообщая мне о том, где он был ранее установлен или сброшен. 03.04.2014
  • Большое спасибо, это действительно помогает :) 03.04.2014

  • 2

    Вероятно, это устанавливается встроенным ftplugin файлом для Python. если ты

    :e $VIMRUNTIME/ftplugin/python.vim
    

    и выполните поиск по запросу shiftwidth, вы, вероятно, найдете там 4.

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

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..