После просмотра МНОГО веб-страниц, многие из которых давали некоторые подсказки, которые, казалось, не работали, я нашел подсказку (дополнительный текст вокруг вставки ), которая привела меня к причине и решению проблемы. проблема.
Похоже, что vim встроил в него несколько «фальшивых» записей termcap, которые он использует, когда распознает определенные терминалы (и иногда ошибается, хотя в данном случае это не так ).
Настройки Termcap в vim многочисленны, поэтому они НЕ отображаются в обычном списке настроек «:установить все». Чтобы их увидеть нужно использовать ":set termcap". Конкретная «нестандартная» -настройка termcap — «t _BE» (см. vim «:help t _BE» ). Встроенный -в справке «xterm -в квадратных скобках -вставка» объясняет эту внутреннюю настройку термина -на -vim.
В основном, если этот параметр определен (в данном случае Vim, а не termcap/terminfo ), тогда vim отправит его в xterm при запуске, что указывает xterm добавлять специальные коды вокруг любого текста, который вставляет пользователь. из внешнего источника. Когда vim их видит, он автоматически переходит не только в режим вставки -, но также устанавливает режим «вставки -», чтобы не форматировать текст.
Более поздний режим (вставки -)я считаю ОЧЕНЬ полезным! Первое доставляло мне все неприятности.
Решение грубой силы отключает вставку в квадратных скобках -, добавляя ее в «.vimrc»
:set t_BE=
Альтернативное решение....
Вместо полного отключения вставки -в квадратных скобках остановите выполнение действий vim, когда он увидит начальную последовательность терминальной вставки (с помощью мыши )в командном или обычном -режиме.
:nmap <PasteStart> <NOP>
:nmap <PasteEnd> <NOP>
:cmap <PasteStart> <NOP>
:cmap <PasteEnd> <NOP>
Использование этого означает, что если вы вставляете текст в режиме вставки -, vim не будет пытаться форматировать (отступ )текст, который, скорее всего, уже имеет отступ.
Это не означает, что мне больше не нужно переключать режим вставки -, так как я также использую переключатель режима вставки -(, сопоставленный с F2 ), чтобы отключить «showbreak» и «listchars» (отображение перенесенных строк, табуляции, без -пробелов и дополнительных пробелов в конце строк ). Мне все равно нужно было бы перевести vim в этот режим, когда я хочу сделать выбор мыши для вставки в другое место.
Комментарии и предложения по решениям приветствуются.
Использование контура while read
:
while read -r ip; do curl --fail "ipinfo.io/${ip}/city" || break; done<ip_list.txt
Это прочитает файл ip_list.txt
и установит для каждой строки переменную цикла ip
, а затем свернет ее.
По предложению Стефана я добавил флаг --fail
в curl, чтобы он автоматически завершал работу при ошибке сервера, и флаг || break
, чтобы прерывать цикл. ipinfo.io разрешает 50 тысяч запросов API в месяц для бесплатных учетных записей, поэтому в зависимости от того, сколько у вас IP-адресов и как часто вы планируете использовать это, это может быть проблемой для вас.
Для поиска географического IP-адреса (es )я обычно предпочитаю использовать базу данных MaxMind geoIP. Он быстрее, так как не имеет подключения к Интернету для каждого IP-адреса, так как использует локальную базу данных, и не имеет ограничений на количество звонков.
Если в Debian, в качестве предварительного -необходимо установить пакеты:
sudo apt-get install geoip-bin geoip-database-extra
Затем запустите скрипт:
while read -r ip; do geoiplookup $ip | awk -F, ' /City/ { print $5 } ' \
; done < ip_list.txt > cities.txt