Выделить все вхождения выбранного слова?

Вам нужно использовать именованные функции.

Кроме того, переменная click должна быть вне обработчика для увеличения.

var click_count = 0;

function myClick(event) {
    click_count++;
    if(click_count == 50) {
       // to remove
       canvas.removeEventListener('click', myClick);
    }
}

// to add
canvas.addEventListener('click', myClick);

EDIT: вы можете закрыть вокруг переменной click_counter следующим образом:

var myClick = (function( click_count ) {
    var handler = function(event) {
        click_count++;
        if(click_count == 50) {
           // to remove
           canvas.removeEventListener('click', handler);
        }
    };
    return handler;
})( 0 );

// to add
canvas.addEventListener('click', myClick);

Таким образом вы можете увеличить счетчик на несколько элементов.


Если вы этого не хотите и хотите, чтобы у каждого был свой собственный счетчик, сделайте следующее:

var myClick = function( click_count ) {
    var handler = function(event) {
        click_count++;
        if(click_count == 50) {
           // to remove
           canvas.removeEventListener('click', handler);
        }
    };
    return handler;
};

// to add
canvas.addEventListener('click', myClick( 0 ));

EDIT: Я забыл чтобы назвать обработчик, возвращаемый в последних двух версиях. Исправлено.

139
задан Keith Pinson 16 September 2014 в 20:22
поделиться

7 ответов

В обычном режиме:

:set hlsearch

Затем выполните поиск шаблона командой / в обычном режиме, или o с последующим / в режиме вставки. * в обычном режиме будет искать следующее вхождение слова под курсором. Опция hlsearch выделит все, если она установлена. # будет искать предыдущее вхождение слова.

Чтобы убрать выделение предыдущего поиска:

:nohlsearch

Возможно, вы захотите назначить :nohlsearch на какую-нибудь удобную клавишу.

187
ответ дан 23 November 2019 в 22:57
поделиться
set hlsearch

может быть?

1
ответ дан 23 November 2019 в 22:57
поделиться

Клавиша * выделяет все вхождения слова, находящегося под курсором.

108
ответ дан 23 November 2019 в 22:57
поделиться

Сначала (или в вашем .vimrc):

:set hlsearch

Затем наведите курсор на слово, которое вы хотите выделить, и нажмите * .

hlsearch означает выделение всех вхождений текущего поиска, а * означает поиск слова под курсором.

3
ответ дан 23 November 2019 в 22:57
поделиться

Включить выделение при поиске:

:set hlsearch

Затем найдите слово:

/word<Enter>
2
ответ дан 23 November 2019 в 22:57
поделиться

Мне больше всего нравится плагин mark.vim. Он позволяет выделять несколько слов разными цветами одновременно.

Пример скриншота

2
ответ дан 23 November 2019 в 22:57
поделиться

Сначала убедитесь, что hlsearch включен, введя следующую команду

:set hlsearch

Вы также можете добавить это в свой .vimrc файл, как установлено

set hlsearch

, когда вы используете механизм быстрого поиска в командном режиме или обычная команда поиска, все результаты будут выделены. Для перехода между результатами нажмите 'n', чтобы перейти назад нажмите 'N'

В обычном режиме, чтобы выполнить быстрый поиск слова под курсором и перейти к следующему вхождению в одной команде, нажмите '*', вы также можете найти слово под курсором и перейти к предыдущему вхождению, нажав '#'

В обычном режиме быстрый поиск также можно вызвать с помощью

/searchterm<Enter>

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

:nohl
2
ответ дан 23 November 2019 в 22:57
поделиться
Другие вопросы по тегам:

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