Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
:wq, а :x.var a = [], b = 0, c = {};var a = [];
var b = 0;
var c = {};Java, C# или Ruby после C
Все «великие программисты, которые в четыре строки умещают то, на что вам надо десять страниц кода» пользуются нормальными IDE.
sudo vim /путь к папке/Странно, но мне вот первые люди встречались, а вторые — ни разу.Ну что ж, здравствуйте, я пришел к Vim с высокоуровневых IDE и ничуть об этом не жалею… По мне, так для Python нет ничего лучше, чем Vim (хотя ST2 тоже хорош).
с кучей пальцесломательных сочетаний клавиш…
Достаточно прогнать через анализатор кода, что бы выявить ошибку.
@methods = qw(name rank serno);
%his_info = map { $_ => $ob->$_() } @methods;
Не думаю, что у других языков будет какое-то отличие.
$methods = ["getName", "getRank", "getSerNo"];
$data = array_map(function ($method) use (&$ob) {
return $ob->$method();
}, $methods);
Ключ -c — это не утилита, это нативное средство.
Речь идет не о программных ошибках, а о опечатках при декларации переменных.
Для выявления программных ошибок синтаксический анализатор никогда и не был предназначен. Для этого существуют тесты.
Суть моих комментариев можно свести к одному, что для каждого языка существуют родные или общепризнанные средства для работы с кодом (анализа, профилирования и пр.) и Vim никоим образом не усложняет работу с этими средствами.
Диалог начался с обсуждения проблемы и похоже, что решение нашлось.
Брр… банальная опечатка в имени переменной может обнаружиться через месяц? Это как так? Это что за язык такой?
Начнем с того, что в том же JavaScript наверняка есть возможность декларировать переменные, определять область видимости и пр., и скорее всего, это является хорошей практикой.
Так же, для JavaScript существуют анализаторы кода, и если переменные всё же объявлять, то они помогут исправлять подобные ошибки.
var e = {
w : 10,
getW: function() {
return this.q;
}
};
e.getW();
Я уверен, что для подавляющего большинства языков проблемы при работе в Vim — надуманны.
Что касается тестов, то как раз таки проблемные места и надо тестировать, а не писать тесты «что бы были», не правда ли?
local foo = false
ffoo = true
if foo == true then
print( "done!" )
end
volch@home:~$ ctags
Приложение 'ctags' может быть найдено в следующих пакетах:
* exuberant-ctags
* elvis-tools
Попробуйте: sudo apt-get install <выбранный пакет>
Что-то не то.
Да и, мягко говоря, складывается ощущение, что перегенерация потребуется после каждого изменения имён в проекте.
— автодополнение (крайне желательно контекстное, что называется интеллектуальное) по всему проекту и внешним (например в /usr/share) библиотекам
— навигация по проекту и внешним библиотекам, как по дереву, так и переходу к месту объявления, использования и т. п.
Видел, но как-то оно очень неинтеллектуальным показалось (для динамических языков: PHP, Python, Ruby) — такое ощущение, что никакого синтаксического анализа не производится, просто слова предлагаются из общего списка вне зависимости от контекста.
var old = true;
var a = {};
a[old ? "oldApiMethod" : "newApiMethod"] = function() {
// do something;
};
a.oldA//Ctrl+P легко дополнит здесь название метода
а не заметить, например, использование глобальной переменной (одной из десятка) при выделении функции/метода в сотню строк проще простого :(
Однажды вечером Резерфорд зашел в лабораторию. Хотя время было позднее, в лаборатории склонился над приборами один из его многочисленных учеников.
— Что вы делаете так поздно? — спросил Резерфорд.
— Работаю, — последовал ответ.
— А что вы делаете днем?
— Работаю, разумеется, — отвечал ученик.
— И рано утром тоже работаете?
— Да, профессор, и утром работаю, — подтвердил ученик, рассчитывая на похвалу из уст знаменитого ученого.
Резерфорд помрачнел и раздраженно спросил:
— Послушайте, а когда же вы думаете?
но никак не могу взять в толк, как удобство набора/редактирования кода влияет на эффективность программиста?
* скопировать в буфер обмена целиком приведенный список. (3 нажатия) * скопировать в буфер целиком приведенный список не включая символы [] (3 нажатия) * удалить все адреса начиная с того на котором стоит курсор и до символа ] (3 нажатия) * окружить список вместо [] тегами <pre> (5 нажатий) * отправить этот список на pastebin и скопировать ссылку в буфер обмена (5 нажатий)
(5 нажатий)" - выглядит подозрительно, чтобы только набрать <pre> на обычной клавиатуре уже 7 надо.


— проверить и выделить ошибки в коде на основе JSLint/phpcs
— в css-файле дополнение по имени файла для свойств background относительно DocumentRoot
вернуться к предыдущему месту редактирования
Вы мне фичу из vim — а я вам показываю как тоже самое сделать в Netbeans/Subime/PhpStorm.
<cheat mode>На сервере без иксов по ssh отредактировать файлик =))</cheat mode>
:e scp://user@host//path/to/file
:vsplit scp://user@anotherhost//path/to/file
:diffthis
Ctrl+W h
:diffthis
|Заголовок|Тест|
|Один|Два|
| Заголовок | Тест |
| Один | Два |
var a=3;
var b_var = 43132;
var a = 3;
var b_var = 43132;
:Align | в первом случае и :Align = во втором. | Один | Два | Три |
| Один | Два | Три |
| Один | Три | Два |
| Один | Три | Два |
di"b+c в скобочки в выражении a+b+c+20. VIM: fbvfcS":sort:!uniq -c, на примере команды uniq.function! SyntaxCheckers_gap_GetLocList()
let makeprg = 'sh '.shellescape(findfile("bin/make_gap", &rtp)).' '.shellescape(expand('%'))
let errorformat = '%ESyntax error: %m in %f line %l'
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
endfunction
Vim