Позвольте мне поделиться своими выводами со следующим слегка измененным кодом HTML / JS.
Однако, если вы перейдете на задержку const delayBlocking = 50
миллисекунд, в браузере Firefox Stable Quantum 60.6.1 ESR также будет отображено «Блокирование ...».
Моя интерпретация (согласно тому, что Марк сказал в комментарии), что браузеру нужно дать время для обновления DOM. Браузер должен иметь возможность отображать хотя бы один кадр, показывающий сообщение о состоянии «Блокировка ...», отображаемое до перехода в заблокированное состояние (здесь в течение 5 секунд). Это можно сделать с помощью подходящего настроенного setTimeout, как показано ниже. - С уважением, М.
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>Document</title>
</head>
<body>
<a id="block" href="#">Block</a>
<div id="statusMessage"></div>
<button>Click me!</button>
<script>
document.getElementById('block')
.addEventListener('click', doBlock);
function doBlock(event) {
setStatus('Blocking...');
// Introducing some ...
const delayBlocking = 0;
setTimeout(function() {
sleep(5000);
setStatus('Done');
}, delayBlocking);
}
function sleep(milliseconds) {
const start = Date.now();
while ((Date.now() - start) < milliseconds);
}
function setStatus(status) {
document.getElementById('statusMessage')
.textContent = status;
}
</script>
</body>
</html>
Так как Вы изменили свой вопрос, я сделаю это этот путь:
Переместитесь в первый "replacethis1" и введите по часовой стрелке (слово изменения), затем введите "copythis" вручную.
Переместитесь в следующий "replacethis", совершите нападки. (повторите последнюю операцию),
Переместитесь в следующий "replacethis", совершите нападки.,
и так далее, и так далее.
Если "copythis" является небольшим словом, я думаю, что это - лучшее решение.
:%s/copythis/replacethis/g
Заменять все случаи copythis с replacethis. Или можно указать диапазон номеров строки как:
:8,10 s/copythis/replacethis/g
Отметьте,/g на конце скажет этому заменять все случаи. Если Вы уедете, то это от него просто сделает первый.
Цифра должна быть включена, и на строку мог быть больше чем один экземпляр:
:%s/replacethis\d/copythis/g
создайте это отображение:
:map z cwcopythis^ [
(^ [символ ESC, можно ввести его в энергии с помощью Ctrl+V Ctrl + [),
перейдите к каждому слову, Вы хотите заменить и нажать z
Учитывая, что "replacethis [1-3]" могут быть произвольные несвязанные слова, самый быстрый/самый простой способ сделать, это глобально было бы:
:%s/replacethis1\|replacethis2\|replacethis3/copythis/g
(Обратите внимание, что необходимо использовать \|, чтобы заставить каналы функционировать как "или". Иначе энергия будет искать литерал | символ.)
Я боролся с этим в течение долгого времени также, я думаю, что просто разработал самый чистый путь:
Используйте, какой бы ни команда является самой чистой для помещения copythis в регистр r:
/copythis
"rye
Затем перейдите к замене и замените ее содержанием r:
/replacethis
cw<CTRL-R>r<ESC>
Затем Вы можете просто n.n.n.n.n.n.n.
для остальной части их, или если они дико отличаются просто, переходят к началу каждого и совершают нападки .
Ключ заменяет и вставляет за один шаг, таким образом, можно использовать .
позже.
если необходимо сделать по существу, то же действие многократно - подкачивает 1-е слово одной строки со вторым словом следующей строки, я говорю, что Вы могли записать макрос и назвать его каждый раз, когда Вы должны
Вы попробовали строковую замену?
%s/replacethis/copythis
Хост других параметров возможен подстроить замену. Погружение в Vim помогает для получения дополнительной информации. Еще некоторые примеры здесь.