Немного непонятно, в чем здесь сакральный смысл использования Mosh, если с терминальным сервером всё равно одно единственное подключение используется, а вся работа по сохранению рабочей среды лежит на tmux. Так ли необходимо жертвовать безопасностью в угоду получения минимального преимущества?
Собственно у вас в задании не дописано само задание =)
Создайте функциональный компонент MyInfo, формирующий следующие HTML-элементы:
a. Заголовок h1 с вашим именем.
b. Параграф с небольшой заметкой о себе.
c. Нумерованный или ненумерованный список с тремя местами, которые мечтаете посетить во время отпуска.
Уважаемые читатели! Если вы проходите этот курс — просим рассказать о том, в какой среде вы выполняете упражнения.
" Emmet config
let g:user_emmet_leader_key='<Tab>'
let g:user_emmet_install_global = 0
let g:user_emmet_settings = {
\ 'javascript.jsx' : {
\ 'extends' : 'jsx',
\ },
\}
autocmd FileType html,css,javascript,jsx EmmetInstall
" ALE config
let g:ale_sign_error = '●' " Less aggressive than the default '>>'
let g:ale_sign_warning = '.'
let g:ale_lint_on_enter = 0 " Less distracting when opening a new file
let g:ale_linters_explicit = 1
let g:ale_fixers = {}
let g:ale_fixers['*'] = ['remove_trailing_lines', 'trim_whitespace']
let g:ale_fixers['javascript'] = ['prettier']
let g:ale_fixers['css'] = ['prettier']
let g:ale_fix_on_save = 1
Срываю покровы: основная киллер-фича командного режима — это ".". Без неё все эти J, cit, dw недостаточно эффективны, (т.к. обычный человек редко знает точное число повторений действия), а с «точкой» можно этим пренебречь не в ущерб скорости. Ну и такая работа позволяет перестроить сознание, и думать о тексте, как о наборе сущностей: слово, строка, параграф и т.п. Ну и далее уже более продвинутые техники, типа макросов: qa сделал обработку текста Esc @a @@@@@@ и т.д.
у меня вот такой вот сниппет в .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).
А в Grafana, вроде, не так давно добавили алертинг.
a. Заголовок h1 с вашим именем.
b. Параграф с небольшой заметкой о себе.
c. Нумерованный или ненумерованный список с тремя местами, которые мечтаете посетить во время отпуска.
В Vim =). С примерно таким конфигом:
"""""""""""""""""""
" Plugins install "
"""""""""""""""""""
call plug#begin('~/.vim/plugged')
Plug 'mattn/emmet-vim', { 'for': ['javascript', 'jsx', 'html', 'css'] }
Plug 'pangloss/vim-javascript'
Plug 'mxw/vim-jsx'
Plug 'w0rp/ale'
call plug#end()
""""""""""""""""""
" Plugins config "
""""""""""""""""""
" Emmet config
let g:user_emmet_leader_key='<Tab>'
let g:user_emmet_install_global = 0
let g:user_emmet_settings = {
\ 'javascript.jsx' : {
\ 'extends' : 'jsx',
\ },
\}
autocmd FileType html,css,javascript,jsx EmmetInstall
" ALE config
let g:ale_sign_error = '●' " Less aggressive than the default '>>'
let g:ale_sign_warning = '.'
let g:ale_lint_on_enter = 0 " Less distracting when opening a new file
let g:ale_linters_explicit = 1
let g:ale_fixers = {}
let g:ale_fixers['*'] = ['remove_trailing_lines', 'trim_whitespace']
let g:ale_fixers['javascript'] = ['prettier']
let g:ale_fixers['css'] = ['prettier']
let g:ale_fix_on_save = 1
curl -i -X GET https://api.telegram.org/bot$API_KEY/sendMessage?chat_id=$CHAT_ID&text=$SOME_TEXTу меня вот такой вот сниппет в .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, в котором и исправляется этот досадный недостаток =)
вот эту вот конструкцию:
можно заменить на: