proft.com.ua

Управление окнами в VIM

4 Vim Комментариев нет

Очень удобная возможность в VIM‘e разделить текущие окно на два половины (горизонтальная или вертикальная) для одновременного редактирования разных файлов или сравнения.

Команды для создания горизонтального окна :sp, :split или Ctrl-w n. Команда :sp может принимать аргументы в виде пути к файлу :sp filename.

Тоже самое, но для вертикального окна :vsp или :vsplit

Создание пустого вертикального окна :vne

Увеличение ширины текущего окна C-w >
Уменьшение ширины текущего окна C-w <
Увеличение высоты текущего окна C-w +
Уменьшение высоты текущего окна C-w -

Открытие файла в окне с переходом к первому найденному слову:
:sp +/слово filename

Открытие файла в окне с шириной в 5 линий:
:5 sp filename

Для выравнивания ширины окон в один размер нажимаем Ctrl-w =

Переключение между окнами :
Ctrl-w j – переход к нижнему окну
Ctrl-w k – переход к верхнему окну
Ctrl-w Ctrl-w – циклическое переключение

Для закрытия активного окна нажимаем Ctrl-w q

Ctrl-w r (R) – перемещение окон в прямом (обратном) направлении

Сравнение файлов в VIM

3 Vim Комментариев нет

Для запуска VIM с несколькими файлами для сравнения передаем пути к файлам аргументами и указываем ключ -d

vim -d file1 file2 [file3 [file4]]

Для запуска сравнения в уже открытом VIM’е набираем :diffsplit {filename} и в текущем окне откроется дополнительное горизонтальное окно с файлом {filename}. Для открытия в вертикальном окне пишем :vert diffsplit {filename}.

При внесении изменений в один из файлов VIM будет пытаться отображать изменения, если этого не происходит вводим :diffupdate для принудительного обновления.

Команды для перемещения между изменениями:

[c - переход к предыдущим различиям
]c - переход к следующим различиям

Две команды для копирования изменений из одного окна (или как еще называют буфера) в другое:

:diffg или do- внесение изменений из неактивного окна в текущие (там, где находится курсор)
:diffpu или dp - внесение изменений из активного окна в неактивное

VIM: выполнение команд при поиске

4 Vim Комментариев нет

В VIM’e можно не только производить поиск по регулярным выражениям, но и выполнять команды для совпавших строк.

Синтаксис :s/<regex>/=<command> выполнение команды <command> для каждого правила совпадения <regex>.

Например:

:g/^$/ d - удаление всех пустых строк в файле

Дополнительное чтиво Vim Regular Expressions 101

Сворачивание (folding) в VIM

13 Vim Комментариев нет

Часто когда работаешь с большими файлами, особенно исходниками программ, тяжело окинуть быстрым взглядом все методы/функции т.к. их тело мешает обзору. В VIM есть удобная возможность сворачивать текстовые блоки в одну линию (для кода - все тело метода сворачивается в заголовок метода).

VIM может сворачивать текстовые блоки по следующим правилам:

  • ручное сворачивание по метке (описано в :help fold-manual)
  • сворачивание на основании отступов в начале строк (описано в :help fold-indent)
  • использование выражений для сворачивания (описано в :help fold-expr)
  • сворачивание на основании синтаксиса (описано в :help fold-syntax)
  • использование разницы - сворачивание не изменившегося текста (описано в :help fold-diff)
  • вставка в тексте маркеров для обозначения точки сворачивания (описано в :help fold-marker)

Для начала использования необходимо активировать возможность сворачивания :set foldenable
Затем задать правило для сворачивания, например, :set foldmethod=indent (сворачивание на основании отступов в начале строк)

Существует множество команд для управления сворачиванием, я приведу только основные:

zc - свернуть блок
zo - развернуть блок
zM - закрыть все блоки
zR - открыть все блоки
za - инвертирование (если открыто - закрыть, если закрыто - открыть)

Дополнительное чтиво Vim documentation: fold

Запись макросов в VIM

8 Vim Комментариев нет

Выполнение сложных, монотонных задач часто может забирать много времени и не решатся через использование регулярных выражений. Vim предоставляет возможность записи последовательности действий:

  • введите в командном режиме qa - команда для записи всех последующих действий в регистр а (или любой другой, который укажите после q).
  • выполняем нужные операции
  • нажимаем снова q (в командном режиме) для остановки записи

Все, теперь макрос записан в регистр а. Вводим @a, в командном режиме, для выполнения содержимого регистра а.

Простой пример работы - перемещение текущей строки в начало файла:

  1. Переходим к желаемой строке, нажимаем qa
  2. Вносим изменения: нажимаем dd для вырезания строки в буфер
  3. Нажимаем m’ для установки метки
  4. :1 ENTER (или gg) - переход к первой строке файла
  5. P - вставка строки из буфера
  6. - возвращения к установленной метке (шаг 3)
  7. Нажимаем q для завершения записи макроса

Для исполнения записанного макроса переходим к следующей строке для перемещения в начало файла и нажимаем @a

В дополнение: команда @@ повторяет последний макрос.

Отладка PHP скриптов с помощью XDebug в Eclipse и VIM

18 PHP Комментариев нет

Полезные ссылки по настройке XDebug в Eclipse и VIM найденные на просторах гиперпростаранства :) :

Getting Started with Eclipse PHP Development Tools (PDT)

Материал полезен для новичков т.к. в нем описано установка PDT, подгрузка плагинов JSEclipse, Subclipse. И то из-за чего статья попала в этот список - установка Zend Debugger.

How To Setup a Free PHP Debugger using Eclipse PDT + XDebug

Подробнейшие описание настройки XDebug в Eclipse с картинками. В качестве сервера используется XAMPP. Также описан сам процесс отладки.

Debugging PHP on Windows with XDebug and VIM

Отладка в VIM’е PHP скриптов с помощью XDebug под Windows

How to Debug PHP with Vim and XDebug on Linux

Отладка в VIM’е PHP скриптов с помощью XDebug под Linux

Vim - наше все!

16 Vim Комментариев нет

После активного, двух месячного пользования Vim’ом решил написать небольшую заметку о текстовом редакторе, которым должен пользоваться каждый, кто активно работает с текстовыми файлами (программеры, верстальщики) и ценят удобство работы и быстрое достижения результата качественным путем.

Много я перебробовал текстовых редакторов, еще начиная с Bred (первых версий), потом всякие EditPad, EmEditor, Gsnote, notepad2, PsPad, UltraEdit и т.д. Всем им не хватала чего, в одном не было назначения горячих клавишей, другой не понимал кодировок, третий раствлял табы и пробелы где не попадя, у четвертого подхрамывал внешний вид … А что большего всего удручало, что на других ПК или после смены ОС приходилось все настраивать заново.

После всего я решил попробовать Vim - без предварительного обучения, а сразу им пользоватся затрудительно, и изменения под себя (благо все гибко настраивается) я “обрел” покой :) Все настолько стало “гладко и шелковисто” что просто не передать :-D

Режимы Vim’a:

Некоторые из особеностей Vim:

  • Мега удобное перемещение по тексту - один раз попробавши, задумываешся как раньше без этого обходился. Полный список можно найти в cheats, приведеных в конце поста.
  • Гибкое назначение клавиш для любого режима (maping)
  • Гибкое создание сокращений (Например, ab h1 <h1></h1>)
  • Метки: в командном режиме: установка метки mx (m - команда установки, х - метка), переход к установленной метке ‘x ( - команда перехода, х - метка). :marks - просмотр всех меток, ‘. - переход к месту последнего редактирования. Переход по истории перемещения по файлу : Ctrl-o и Ctrl-i.
  • 6 вариантов авто-завершение слов (Auto-completion), некоторые из них:
    • автозавершение из ранее набранных слов Ctrl-n
    • автозавершение из пользовтельского словаря Ctrl-x Ctrl-k
    • omni-завершение - автозавершение в зависимости от контекста
  • Запуск Vim с открытием на необходимой строке gvim +10 filename, или на первом найденом слове gvim +/foobar filename
  • Гибко настраиваемое выделения текста: можно выделать любую комбинацию букв, слов, чисел, назначать этим правилам совпадения разные цвета.
  • Проверка правописания: скачиваем необходимый словарь, переходим в нормальный режими нажимаем z=
  • Запись макросов
  • 9 типов регистров (:registers)
  • откаты с ветками (:undilist)
  • откаты по времени :earlier N(s|m|h)
  • 6 типов сворачивание текста
  • сессии редактирования (:mksessions name.vim / source name.vim)
  • встроенный механизм сравнения (:vert diffsplit filename)
  • работа с файлами на удаленном сервере по SCP, SFTP, RCP, HTTP, DAV, rsync, fetch

На память:

Дополнительное чтиво:

Мой .gvimrc:

Download: .gvimrc  .gvimrc (2.9 KiB, 4 hits)

David Mercer - Building powerful and robust websites with Drupal 6

17 Чтиво Комментариев нет

Название: Building powerful and robust websites with Drupal 6
Автор: David Mercer
Дата издание: 2008
Страниц: 380

Содержание:

Chapter 1: Introduction to Drupal
Chapter 2: Setting Up The DevelopmentEnvironment
Chapter 3: Basic Functionality
Chapter 4: Site Configuration
Chapter 5: Access Control
Chapter 6: Basic Content
Chapter 7: Advanced Content
Chapter 8: Drupal’s Interface
Chapter 9: Advanced Features and Modifications
Chapter 10: Managing Your Website
Appendix A: Deployment

Практическое применение Mozilla Prism

8 Софт Комментариев нет

Об Mozilla Prism слышал давно, но применение нашел только на днях. Основная фишка Prism - создание приложений из сайтов, более проще - возможность запуска любимых сайтов по клику на иконке на десктопе (или по горячей клавище и т.д.). Все что надо настроить это url сайта, выбрать отображать ли в окне программы адресную строку, строку состояния, тулбар. Сам Prism кроссплатформенный - есть версии для Linux, Windows, Mac OS X.

Для себя я настроил Remember The Milk удобный органайзер дел насущных :) и другой ящик на GMail - Prism запоминает кукисы у себя локально и не надо перелогиниваться, что бы проверить другой ящик.

WIKI проекта

Критерии ООП языка

92 Программирование Комментариев нет

Наткнулся на список критериев, предлагаемый Jon Bentley, которым должен следовать каждый ООП язык:

  1. Ортогональность (orthogonality) – соблюдать несвязанные свойства отдельно
  2. Универсальность (generality) – использование операций для многих целей
  3. Расчётливость (parsimony) – удаление невостребованных операций
  4. Полнота (completeness) – может ли язык описать все объекты реализуемой модели?
  5. Подобие (similarity) – реализовать язык, который смог бы подсказывать по возможности
  6. Расширяемость (extensibility) – гарантия того, что язык может развиваться
  7. Открытость (openness) – пользователи могут дополнять своими возможностями

Из-за краткости изложения список местами получился не однозначный, но вполне подходящий для общего представления.

Jon Bentley,  “Programming Pearls - Little Languages”,
Communications of the ACM 1986, 29(8)

Страница 1 из 1012345»...Последняя »
 
Powered by WordPress