у меня вот такой вот сниппет в .vimrc с давних времён, хотя думаю что уже должны быть более универсальные и элегантные решения…
set langmap=ёйцукенгшщзхъфывапролджэячсмитьбюЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ;`qwertyuiop[]asdfghjkl\\;'zxcvbnm\\,.~QWERTYUIOP{}ASDFGHJKL:\\"ZXCVBNM<>
nmap Ж :
" yank
nmap Н Y
nmap з p
nmap ф a
nmap щ o
nmap г u
nmap З P
ну тут нужно соблюдать баланс читаемости и краткости, или вносить расшифровку в комментарии при объявлении переменной. и ваш пример не совсем коррелирует с шоткатами vim, где любую непонятную комманду можно изучить в справке.
Со вторым ясно удаляет внутри (), а что делает первый?
не удаляет, а заменяет. cit — тоже самое, только «заменить текст внутри тэга» (html или xml), очень удобно. а удалить будет соответственно dib/dit (delete in brackets / tag).
И почему-то не работает: c% — Вырезание выражения в скобках. (% этоShift+5)
% — это не внутри скобок, это до следующий / предыдущей скобки (и других парных символов) под курсором (или ближейшей к курсору). подробней про этот оператор можно прочитать в справке :help %
в vim применяется какая-то шаманская клавиатурная магия
это лишь кажется на первый взгляд и для людей без знания английского языка (такие ещё встречаются среди IT-специалистов?). для всех остальных большинство клавиатурных сокращений понятны и являются именно сокращениями, в отличии от менее понятных ctrl+c, ctrl+v и т.п.: dw — delete word gt — go to tab cit/cib — change in tag / brackets y — yank v — visual p — paste
И множество других…
отсутствие автоформатирования xml из коробки.
но, по правде признаться, код выше я как раз и выдрал из своего .vimrc, в котором и исправляется этот досадный недостаток =)
au FileType xml exe ":silent 1,$!xmllint --format --recover - 2>/dev/null"
так в squeeze версия bash 4.1-3, до сих пор уязвима. по-крайней мере отсюда все эксплоиты подтвердили уязвимость. надо из wheezy пакет ставить, версия >=4.2.37(1).
ещё можно использовать Esc, Dot (.), для подстановки последнего аргумента последней команды, иногда удобней чем !!: $ ls -al /path/to/directory $ cd <ESC> <.> # преобразуется в cd /path/to/directory
наверно уже не актуально, но отвечу для тех кто придёт сюда из гугла: сравнить чексуммы таблиц можно с помощью утилиты pt-table-checksum, которая входит в состав набора percona-toolkit.
понятно. просто сама идея проверки не понравилась: наличие в langPair русского языка, (а вдруг впоследствии яндекс научится переводить не только с ru / на ru, или разучится как в примере с итальянским). в любом случае спасибо за статью.
кстати, а может имеет смысл поместить полученние массива langPairs в конструктор класса, и впоследствие уже сверять с имеющимся значением, или тоже лишняя нагрузка на переводчик?
в исходном коде смутила проверка на возможность перевода, например не проверяется возможность перевода с русского на итальянский (ru-it), которой нет в возвращаемом json. поэтому не лучше ли было заменить эту конструкцию:
public function yandexTranslate($fromLang, $toLang, $text) {
//один из языков должен быть ru - проверяем, хотя переводчик и так вернет текст - сообщение об ошибке
if ($fromLang != 'ru' AND $toLang != 'ru'){
return 'Sorry, translation directly from '.$fromLang.' to '.$toLang.' is impossible';
}
следующей:
public function yandexTranslate($fromLang, $toLang, $text) {
$langPair = $fromLang."-".$toLang;
// проверяем возможность перевода с $fromLang на $toLang
if (!in_array($langPair, $this->yandexGetLangsPairs())){
return 'Sorry, translation directly from '.$fromLang.' to '.$toLang.' is impossible';
}
у меня вот такой вот сниппет в .vimrc с давних времён, хотя думаю что уже должны быть более универсальные и элегантные решения…
set langmap=ёйцукенгшщзхъфывапролджэячсмитьбюЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ;`qwertyuiop[]asdfghjkl\\;'zxcvbnm\\,.~QWERTYUIOP{}ASDFGHJKL:\\"ZXCVBNM<>
nmap Ж :
" yank
nmap Н Y
nmap з p
nmap ф a
nmap щ o
nmap г u
nmap З P
не удаляет, а заменяет. cit — тоже самое, только «заменить текст внутри тэга» (html или xml), очень удобно. а удалить будет соответственно dib/dit (delete in brackets / tag).
% — это не внутри скобок, это до следующий / предыдущей скобки (и других парных символов) под курсором (или ближейшей к курсору). подробней про этот оператор можно прочитать в справке
:help %
это лишь кажется на первый взгляд и для людей без знания английского языка (такие ещё встречаются среди IT-специалистов?). для всех остальных большинство клавиатурных сокращений понятны и являются именно сокращениями, в отличии от менее понятных ctrl+c, ctrl+v и т.п.:
dw — delete word
gt — go to tab
cit/cib — change in tag / brackets
y — yank
v — visual
p — paste
И множество других…
но, по правде признаться, код выше я как раз и выдрал из своего .vimrc, в котором и исправляется этот досадный недостаток =)
вот эту вот конструкцию:
можно заменить на:
$ ls -al /path/to/directory
$ cd <ESC> <.> # преобразуется в cd /path/to/directory
кстати, а может имеет смысл поместить полученние массива langPairs в конструктор класса, и впоследствие уже сверять с имеющимся значением, или тоже лишняя нагрузка на переводчик?
следующей: