Есть ли другой краткий способ определить, находится ли элемент в списке vim, кроме `index (L, item)`?

Чтобы исследовать эту проблему, вы можете войти в систему на текстовой консоли и запустить там другой экземпляр bash с вашей общей программой. Идея состоит в том, что, если экземпляр bash завершает работу ненормально, вы получаете сообщение, напечатанное на консоли, объясняющее, почему это произошло.

Если вы не можете воспроизвести ошибку таким образом, вы можете открыть эмулятор терминала, а затем открыть другой эмулятор терминала из только что открытого терминала. Затем вы можете запустить команды во втором окне терминала, и, если оно закрывается ненормально, вы можете получить сообщение о том, почему это произошло, в первом окне терминала.

В качестве альтернативы вы можете запустить обычную команду в оболочке, отличной от bash , чтобы посмотреть, сможете ли вы затем воспроизвести ошибку.

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

1
16.10.2015, 05:16
1 ответ

vim не имеет синтаксиса, как i в L, как у Python.

Но вы можете сделать синтаксис короче с помощью count() вместо index():

:echo count([1, 2, 3], 2)
1

Тогда вы можете использовать:

if count(L, i)
  echo 'i in L'
endif

Обратите внимание, что count() будет медленнее, чем index(), так как при подсчете всех случаев i в L, вместо первого индекса как index().

0
28.01.2020, 01:36

Теги

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