ОП был очень близок к редактированию /usr/share/i18n/locales/iso14651_t1_common
, но хитрость не в том удалить строку
<U002E> IGNORE;IGNORE;IGNORE;<U002E> # 47.
, а изменить его на
<U002E> <RES-1>;IGNORE;IGNORE;<U002E> # 47.
Операторы IGNORE
указывают, что точка (, также известная как точка, или символ<U002E>
)будут игнорироваться при упорядочении слов в алфавитном порядке. Чтобы ваши точечные файлы шли первыми, измените IGNORE
на символ сортировки, который стоит перед всеми остальными символами. Символы сопоставления определяются строками типа
collating-symbol <something-inside-angle-brackets>
и упорядочены по появлению строки
<something-inside-angle-brackets>
В моей копии iso14651_t1_common
первым -символом сортировки является <RES-1>
, который появляется в строке 3458. Если ваш файл отличается, используйте тот символ сортировки, который упорядочен первым.
<U002E>
имеет три оператора IGNORE
, потому что буквы можно сравнивать несколько раз в случае равенства. Чтобы понять это,рассмотрим нижний регистр a
и верхний регистр A
(, которые являются частью группы символов, которые на самом деле сравниваются четыре раза):
<U0061> <a>;<BAS>;<MIN>;IGNORE # 198 a
<U0041> <a>;<BAS>;<CAP>;IGNORE # 517 A
Наличие нескольких раундов сравнения позволяет группировать вместе файлы, начинающиеся с «a» и «A», поскольку оба сравниваются как <a>
во время первого прохода, а следующая буква определяет порядок. Если все следующие буквы одинаковы (, например. a.txt
и A.txt
), третий проход поставит a.txt
первым, потому что символ сортировки для строчных букв <MIN>
появляется в строке 3467 перед символом сортировки для прописных букв<CAP>
(в строке 3488 ).
Если вы хотите, чтобы точка стояла первой каждый раз, когда программа упорядочивает буквы, используя LC_COLLATE
, вы можете изменить iso14651_t1_common
, как описано выше, и перестроить файл местоположения. Но если вы хотите сделать это изменение только с на ls
и без root-доступа, вы можете скопировать исходные файлы локали в другой каталог перед их изменением.
Мой язык по умолчанию en _US, поэтому я скопировал en_US
, iso14651_t1
и iso14651_t1_common
в $HOME/path/to/new/locales
. Там я внес вышеупомянутое изменение в iso14651_t1_common
и переименовал en_US
в en_DOTFILE
. Затем я скомпилировал локаль en _DOTFILE с
localedef -i en_DOTFILE -f UTF-8 -vc $HOME/path/to/new/locales/en_DOTFILE.UTF-8
Чтобы заменить порядок ls
по умолчанию, создайте сценарий BASH с именемls
:
#!/bin/bash
LOCPATH=$HOME/path/to/new/locales LANG=en_DOTFILE.UTF-8 ls "$@"
сохраните его где-нибудь перед /usr/bin
на вашем пути и сделайте его исполняемым с помощью chmod +x ls
.
Измените network.proxy.allow_hijacking_localhost
на true в about:settings
.
Я столкнулся с той же проблемой, и я решил ее, используя хром с --прокси -обойти -параметр списка, установленный следующим образом:
google-chrome --proxy-server=socks://127.0.0.1:9999 --proxy-bypass-list='<-loopback>'
Я нашел это решение здесь:
https://superuser.com/questions/1441133/google-chrome-ignorning-localhost-for-socks5-proxy
Пробовали ли вы также заполнять поле HTTP-прокси?
Я заметил, что при использовании одного из моих IP-адресов VPS для туннелирования через это поле также было заполнено вместе с socks. Однако я проверил свой видимый общедоступный IP-адрес, и он действительно показал IP-адрес моего VPS.