Как Michael предполагает, менеджер окон не ответственен за управление методом ввода. Сначала необходимо будет выбрать метод ввода, который IBus
, SCIM
и uim
кажись, быть самыми популярными.
Затем, необходимо удостовериться, что это запускается когда X
запускается. Вы упомянули использование легкого WM поэтому Вы, вероятно, захотите добавить его к X init файлам, такой как ~/.xinitrc
:
export GTK_IM_MODULE=scim
export XMODIFIERS=@im=SCIM
export QT_IM_MODULE=scim
scim -d
В зависимости от метода ввода Вы выбираете, метод для переключения языков будет отличаться. Как правило, Вы должны будете export LANG
, такой как
export LANG=ja_JA.UTF-8
... но иногда щелчок правой кнопкой по полю ввода и выбор "Input Methods" могут быть достаточными.
Можно попробовать наивный подход для соответствия некомментариям как это:
$ egrep -v "^(//|/\*| \*)" sourcecode
Это будет только обратное соответствие против снабженных префиксом комментариев - который является строками, запускающимися с также //
, /*
, *
или */
- и следовательно это не не учтет блоки, которые комментируются с /*
и */
пара.
grep работает над чистым текстом и ничего не знает о базовом синтаксисе Вашей программы C. Поэтому в порядке не поиск в комментирует, что у Вас есть несколько опций:
C-комментарии полосы перед поиском, можно сделать это использование gcc -fpreprocessed -dD -E yourfile.c
Для получения дополнительной информации см. https://stackoverflow.com/questions/2394017/remove-comments-from-c-c-code
Пишите/используйте некоторый hacky, который полурабочие сценарии как Вы уже нашли (например, они работают путем пропуска строк, запускающихся с //
или /*
) для обработки деталей всех возможных комментариев C/C++ (снова, см. предыдущую ссылку для некоторых страшных тестовых сценариев). Затем у Вас все еще могут быть ложные положительные стороны, но Вы ничего не должны предварительно обрабатывать.
Использование более усовершенствованные инструменты для того, чтобы сделать "семантический поиск" в коде. Я нашел "coccigrep": http://home.regit.org/software/coccigrep/, который Этот вид инструментов позволяет поиску некоторых определенных операторов языка (т.е. обновление структуры с именем) и конечно они отбрасывают комментарии.
Вот особый вариант для всех остальных из нас, -пришедших к этому вопросу поздно:
ls -1 src/*.c | xargs -i sh -c "echo;gcc -fpreprocessed -dD -E {} 2>&1 | grep -wi -e one -e two -e three -n | sed 's:^:{}\::'" | cat -s
Список исходных файлов C
ls -1 src/*.c
передаются в xargs, который выполняет препроцессор в дочерней оболочке
gcc -fpreprocessed -dD -E {} 2>&1
, который впоследствии передается в нужную команду grep
grep -wi -e one -e two -e three -n
который затем передается в sed для префикса каждой строки с текущим именем файла
sed 's:^:{}\::'
Наконец,все повторяющиеся пустые строки сворачиваются в отдельные строки с помощью cat:
cat -s
Это работает в системе RHEL6, но я предполагаю, что это достаточно общее для других *nix-систем.