LINUX.ORG.RU

Ответ на: комментарий от bread

Не делайте из меня монстра (С)

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

Вот тут написано, как получить место курсора в textarea. В нём уже можно показывать текущий режим ввода. Правда, я не думаю, что браузер может получить информацию о системной раскладке, но я всё равно планирую переключать раскладку внутри браузера.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

В виме как раз форма курсора меняется. Не представляю как бы я в нем жил без этой фичи. Нужно только чтобы терминал это умел. Есть плагин togglecursor для ленивых, а так требуется всего пара заклинаний в конфиге.

bread
()
Ответ на: комментарий от bread

gVim

а я привык уже смотреть на цвет statusline и переключаться по [F1]:

"
set keymap=russian-jcukenwin    " установить keymap, чтобы по Ctrl+^ переключался на русский и обратно
set iskeyword=@,48-57,_,192-255 " настраиваю для работы с русскими словами (чтобы w, b, * понимали русские слова)
set iminsert=0                  " по умолчанию - латинская раскладка
set imsearch=0                  " по умолчанию - латинская раскладка при поиске
set backspace=indent,eol,start  " allow backspacing over everything in insert mode

colorscheme koehler

" Переключение раскладок и индикация выбранной в данный момент раскладки.
" При английской раскладке статусная строка текущего окна будет синего цвета, а при русской - красного.
function MyKeyMapHighlight()
    if &iminsert == 0
		hi tabLine    ctermfg=darkBlue guifg=darkBlue guibg=darkGrey
		hi StatusLine ctermfg=darkBlue guifg=darkBlue guibg=Gray30
    else
		hi tabLine    ctermfg=darkBlue guifg=darkBlue guibg=darkGrey
		hi StatusLine ctermfg=darkRed  guifg=darkRed  guibg=Gray30
    endif
endfunction

" Вызываем функцию, чтобы она установила цвета при запуске Vim'a
call MyKeyMapHighlight()

" При изменении активного окна будет выполняться обновление индикации текущей раскладки
au WinEnter * :call MyKeyMapHighlight()

"
cmap <silent> <F1> <C-^>
imap <silent> <F1> <C-^>X<Esc>:call MyKeyMapHighlight()<CR>a<C-H>
nmap <silent> <F1> a<C-^><Esc>:call MyKeyMapHighlight()<CR>
vmap <silent> <F1> <Esc>a<C-^><Esc>:call MyKeyMapHighlight()<CR>gv

"
set encoding=utf8                                    " set charset translation encoding
set termencoding=utf8                                " set terminal encoding
set fileencoding=utf8                                 " set save encoding
set fileencodings=utf8,cp1251,cp866,ucs-2le,koi8r     " список предполагаемых кодировок, в порядке предпочтения
set fileformats=dos,unix,mac

"
set laststatus=2   " всегда показывать строку статуса
set statusline=%f%m%r%h%w\ %y\ \{\hl:%{&syn}}\{ff:%{&ff}\}\{fenc:%{&fenc}\}\{enc:%{&enc}\}\{tenc:%{&tenc}\}%=\{dec:%3b\ hex:%2B\}%4c:%3l/%L[%2p%%]
" 
anonymous
()
Ответ на: комментарий от den73

С курсором хорошо. Причем форма работает лучше, чем цвет например.

bread
()
Ответ на: gVim от anonymous

кстати:

:help abbreviations

тогда определение аббревиатуры

:ab Бф <a href=""></a>

при нажатии трёх кнопок [Б] [ф] [пробел]:

Бф[Space]

здесь [Space] — нажатие пробела, развернётся в:

<a href=""></a> 

при этом, нажатие стрелки курсора вправо, например, оставит буквы «как есть», без раскрытия аббревиатуры

anonymous
()
Ответ на: комментарий от anonymous

Думаю, статус бар далёк от курсора. Даже смотреть на экран не всегда хочется, а уж далеко от курсора - тем более. Фон экрана или что-то около курсора было бы лучше. Хотя то, что около курсора, может загораживать часть текста и это может раздражать.

Насчёт аббревиатур - вопрос не в том, как их сделать,а в том, пользуются ли ими. Я, например, почти никогда не пользуюсь, поскольку считаю, что не нужно привязываться к IDE - сегодня она одна, а завтра вынужденно будет другая. Ну и плюс к тому в лиспе считается более правильным сделать DSL, в котором сама запись будет более компактной. Потому что написать-то простыню легко, а потом при поддержке её ещё придётся читать, и на долгом проекте чтение многократно перекроет запись по трудоёмкости. Но это лишь мой опыт и мои предпочтения, а вопрос сейчас в том, чем народ пользуется.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

Думаю, статус бар далёк от курсора. Даже смотреть на экран не всегда хочется, а уж далеко от курсора - тем более. Фон экрана или что-то около курсора было бы лучше. Хотя то, что около курсора, может загораживать часть текста и это может раздражать.

там же функция с указанием цветов классам — что хочешь, то и раскрашивай, например:
* комментарии (серый - англ, синий - рус)
* строки (зеленый - англ, фиолетовый - рус)
* можно и фон красить: set background=light (или dark)
* ...

Впрочем, не настаиваю, каждый сам кузнец своих фломастеров.

anonymous
()
Ответ на: комментарий от den73

Насчёт аббревиатур - вопрос не в том, как их сделать,а в том, пользуются ли ими. Я, например, почти никогда не пользуюсь, поскольку считаю, что не нужно привязываться к IDE - сегодня она одна, а завтра вынужденно будет другая.

кхм, а кто недавно рассказывал, сколько нужно жать на пробел, чтоб латиницу печатать? в блокноте такого нет )

anonymous
()
Ответ на: комментарий от anonymous

gVim

вот, например, достаточно пару строк добавить в функцию:

"
function MyKeyMapHighlight()
    if &iminsert == 0
		set background=dark
		hi tabLine    ctermfg=darkBlue guifg=darkBlue guibg=darkGrey
		hi StatusLine ctermfg=darkBlue guifg=darkBlue guibg=Gray30
    else
		set background=light
		hi tabLine    ctermfg=darkBlue guifg=darkBlue guibg=darkGrey
		hi StatusLine ctermfg=darkRed  guifg=darkRed  guibg=Gray30
    endif
endfunction
"
anonymous
()
Ответ на: комментарий от anonymous

Нет, я в данном случае не про вим, а про гипотетический веб-редактор. Похоже, что в виме всё гораздо проще. С клавиатурой в вебе просто ад, JavaScript Madness: Keyboard Events. Опять же и форму каретки при вводе текста в вебе поменять нельзя, я не нашёл способа.

Хотя про вим тоже интересно, но это потом.

den73 ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Господи, как отвратительно это выглядит.

ugoday ★★★★★
()

Кто как решает вот эту проблему?

Это вообще не проблема.

Вот, например, вёрстка страниц на арабском — это проблема :D Когда при движении вправо при переходе от англоязычного html к арабскому тексту курсор прыгает в конец текста и меняет направление движения :) При чём ещё и курсорные кнопки меняются, теперь «вправо» одначает движение к началу текста и нужно начинать нажимать «влево»...

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

В общем, я уже почти доделал клавиатуру, где с зажатым пробелом вводится латиница. По правде говоря, я знал, что в вебе всё плохо, но не знал, что всё совсем уж плохо. Сейчас занимаюсь кросс-браузерной совместимостью, потом сделаю тестовую страничку на тех браузерах, которые выживут :) Репозиторий тут, без всяких объяснений, но в нём есть пример. jquery и т.п.

Если хватит сил, сделаю какой-нибудь онлайн редактор маркдауна, хотя по правде сказать, я уже от этого проекта подустал. Может быть, оставлю просто демо.

Если у вас есть идеи, где ещё кроме маркдауна актуально частое переключение раскладки - пишите.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от den73

Неохота новую тему заводить, но вопрос такой: как распознать браузер. Почитал, что сейчас модно распознавать не браузер, а поддержку фич. Так вот фича в данном случае, состоит в том, что нажатие на кнопку «=» в разных браузерах порождает разный код клавиши. Не мыслю, как проверить это, не нажав на кнопку, и при этом в modernizr тоже подобной проверки не нашёл. jquery.browser в моём Firefox возвращает пустоту.

Я прикинул по трём имеющимся у меня (под офтопиком) браузерам: если в navigator.userAgent есть слово Firefox, то это Firefox. Если есть слово .NET, то это IE. В Yandex есть слово Chrome. Не уверен, что возьмусь поддерживать Oper-у - и так уже достало.

Я ещё собираюсь писать на странице «похоже, что ваш браузер - такой-то. Если я неправ, то ничего работать у вас не будет».

Как решить это более правильно?

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от den73

купи на алиэкспрессе программируемый кейпад, и педалируй с него Ж)

anonymous
()
Ответ на: комментарий от den73

на Спектруме был такой курсор с буковкой внутри квадратика, показывающей режим, и 4-5 режимов

anonymous
()

А где проблема?

trarara.html

tratata.html же ну!

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.