четверг, 24 ноября 2011 г.

Поддержка мыши в vim (MAC OS X)

Для того что бы включить поддержку мыши (мне очень не хватало возможности скролить документ) в Vim в маке (в убунту, как я понимаю по умолчанию включено) необходимо сделать следующее:

1. Ставим SIMBL (SIMple Bundle Loader) отсюда http://www.culater.net/software/SIMBL/SIMBL.php

2. Ставим плагин к Terminall.app MouseTerm https://bitheap.org/mouseterm/

3. Перезапускаем терминал и в ~/.vimrc добавляем условие:

if has("mouse")
set mouse=a
endif

Также можно настроить emacs

четверг, 10 ноября 2011 г.

Добавление алиасов навсегда

Алиасы это очень удобная функциональность для того что бы упросить вв од частоиспользуемых команд.

Например когда я логинюсь на хостинг сервер где крутятся мои веб проекты, наиболее часто я начинаю работу с перехода в каталог с вхостами:

$cd /var/www

Для того что бы не вводить каждый раз эту комманду я создал для нее алиас "www" командой:

$alias='cd /var/www'

Теперь при наборе комманды www я перехожу в нужный каталог.

Но есть одна проблема при использовании комманды alias - созданные комманды живут только в течении текущей сессии, что, естественно, не удобно.

Для того что бы сделать эти алиасы постоянными нужно добавить их в файл ~/.bash_profile (mac) или ~/.bashrc в linux (Ubuntu). Также для удобства в Ubuntu можно создать отдельный файл для алиасов ~/.bash_aliases

Кстати не забудте перезапустить сессию после того как добавите адиасы в этот файл.

Вот список моих алиасов из ~/.bash_profile

alias hostsedit='sudo vim /private/etc/hosts'
alias ..='cd ..'
alias ..2='cd ../..'
alias ..3='cd ../../..'
alias ..4='cd ../../../..'
alias la='ls -lAXh' #Show all, sort by extension
alias l="ls -l"
alias la="ls -la"

пятница, 21 октября 2011 г.

Смена горячих клавиш по умолчанию в Midnight Commander

В последних версиях Midnight Commander была реализована возможность смены хоткеев по усмотрению пользователя. Для решения этого нужно в файле /etc/mc/mc.keymap внести изменения:

  1. diff --git a/misc/mc.keymap.default b/misc/mc.keymap.default
  2. index 3ca8043..3c9c3e0 100644
  3. --- a/misc/mc.keymap.default
  4. +++ b/misc/mc.keymap.default
  5. @@ -270,7 +270,7 @@ PanelMoveRight = right
  6. PanelPrevPage = pgup; alt-v
  7. PanelNextPage = pgdn; ctrl-v
  8. PanelDoEnter = enter
  9. -PanelChdirOtherPanel = alt-o
  10. +PanelChdirOtherPanel = alt-i
  11. PanelChdirToReadlink = alt-l
  12. PanelViewSimple = F13
  13. PanelEditNew = F14
  14. @@ -287,7 +287,7 @@ PanelDirectoryHistoryNext = alt-u
  15. PanelDirectoryHistoryPrev = alt-y
  16. PanelGotoBottomFile = alt-j
  17. PanelGotoMiddleFile = alt-r
  18. -PanelSyncOtherPanel = alt-i
  19. +PanelSyncOtherPanel = alt-o
  20. PanelGotoTopFile = alt-g
  21. PanelSetPanelEncoding = alt-e
  22. PanelMoveHome = alt-lt; home

вторник, 17 мая 2011 г.

MySQL backup (mysqldump)

Создание бекапа

Для бекапа баз можно воспользоватся утилитой mysqldump Она сделает экспорт базы в текстовый файл.

Использование:

mysqldump -uuser -ppasswd -f database_name > ~/filename.sql

Этой командой мы делаем бэкап базы данных под именем database_name в файл filename.sql в домашнюю директорию текущего пользователя

Еще несколько вариантов:
mysqldump -uuser -ppasswd -f --default-character-set=utf8 database_name | gzip -c > filename.sql.gz


а если приходится делать дампы с разными кодировками, то удобно пользоваться переменными:
set DBCHARACTER = utf8
set DBNAME = breach
mysqldump -uuser -ppasswd -f --default-character-set=$DBCHARACTER $DBNAME | bzip2 -c > $DBNAME.`date "+%Y-%m-%d"`.sql.bz2


Если нужно автоматизировать удаление старых архивов, можно воспользоваться cron и командой find. Запуская периодически
find ~/каталог-с-архивами -name "*.gz" -mtime +7 -exec rm -f {} \;
Тем самым Вы будете удалять архивы, которые "старше" семи дней.

Несколько полезных параметров mysqldump:

--databases позволяет сделать так, что mysqldump включит в сценарий восстановления команды CREATE DATABASE /*!33333 IF NOT EXISTS*/ DBNAME и USE DBNAME. Это позволит создавать рабочие базы "с нуля". То есть, без использования --databases подразумевается, что пользователь восстанавливает одну базу данных и явно указывает, куда нужно помещать восстанавливаемые данные. Если же backup создается с целью сделать полностью рабочую копию данных, например, на другом MySQL-сервере, то нужно использовать этот ключ;

--all-databases позволяет сделать копии всех баз данных, которые существуют на данном MySQL-сервере. Если же нужно сделать копии только некоторых баз, нужно просто указать их через пробел при вызове mysqldump из командной строки (см. выше);

--add-drop-table - ключ, который заставит mysqldump добавлять в итоговый сценарий команду drop table перед созданием таблиц. Это позволит избежать некоторых ошибок при восстановлении базы из резервной копии. Конечно, нужно учитывать то, что таблицы, находящиеся в рабочей копии (если таблицы с таким же именем существуют в backup), перед восстановлением из резервной копии будут удалены из основной базы и пересозданы из backup;

--no-data. С помощью этого ключа можно быстро сделать копию структуры таблицы/баз без самих данных. Например, Вы создали сложную таблицу и хотели бы сохранить на будущее ее структуру, а сами данные, которые находятся в этой таблице, Вам в резервной копии не нужны;

Восстановление из бекапа

mysql -uasd -pasd qwerty < filename.sql

суббота, 12 февраля 2011 г.

Замена текста в нескольких файлах

Чтобы заменить foo на bar в нескольких файлах, выполните следующую команду:

perl -pi~ -e 's/foo/bar/' [files]

Оригинальные файлы при этом будут сохраны с именами filename~

четверг, 20 января 2011 г.

Список комманд редактора VIM

< The list of Vim commands >



Working with files
Vim command Action
:e filename Open a new file. You can use the Tab key for automatic file name completion, just like at the shell command prompt.
:w filename Save changes to a file. If you don't specify a file name, Vim saves as the file name you were editing. For saving the file under a different name, specify the file name.
:q Quit Vim. If you have unsaved changes, Vim refuses to exit.
:q! Exit Vim without saving changes.
:wq Write the file and exit.
:x Almost the same as :wq, write the file and exit if you've made changes to the file. If you haven't made any changes to the file, Vim exits without writing the file.
These Vim commands and keys work both in command mode and visual mode.
Vim command Action
j or Up Arrow Move the cursor up one line.
k or Down Arrow Down one line.
h or Left Arrow Left one character.
l or Right Arrow Right one character.
e To the end of a word.
E To the end of a whitespace-delimited word.
b To the beginning of a word.
B To the beginning of a whitespace-delimited word.
0 To the beginning of a line.
^ To the first non-whitespace character of a line.
$ To the end of a line.
H To the first line of the screen.
M To the middle line of the screen.
L To the the last line of the screen.
:n Jump to line number n. For example, to jump to line 42, you'd type :42
Inserting and overwriting text
Vim command Action
i Insert before cursor.
I Insert to the start of the current line.
a Append after cursor.
A Append to the end of the current line.
o Open a new line below and insert.
O Open a new line above and insert.
C Change the rest of the current line.
r Overwrite one character. After overwriting the single character, go back to command mode.
R Enter insert mode but replace characters rather than inserting.
The ESC key Exit insert/overwrite mode and go back to command mode.
Deleting text
Vim command Action
x Delete characters under the cursor.
X Delete characters before the cursor.
dd or :d Delete the current line.
Entering visual mode
Vim command Action
v Start highlighting characters. Use the normal movement keys and commands to select text for highlighting.
V Start highlighting lines.
The ESC key Exit visual mode and return to command mode.
Editing blocks of text
Note: the Vim commands marked with (V) work in visual mode, when you've selected some text. The other commands work in the command mode, when you haven't selected any text.
Vim command Action
~ Change the case of characters. This works both in visual and command mode. In visual mode, change the case of highlighted characters. In command mode, change the case of the character uder cursor.
> (V) Shift right (indent).
< (V) Shift left (de-indent).
c (V) Change the highlighted text.
y (V) Yank the highlighted text. In Windows terms, "copy the selected text to clipboard."
d (V) Delete the highlighted text. In Windows terms, "cut the selected text to clipboard."
yy or :y or Y Yank the current line. You don't need to highlight it first.
dd or :d Delete the current line. Again, you don't need to highlight it first.
p Put the text you yanked or deleted. In Windows terms, "paste the contents of the clipboard". Put characters after the cursor. Put lines below the current line.
P Put characters before the cursor. Put lines above the current line.
Undo and redo
Vim command Action
u Undo the last action.
U Undo all the latest changes that were made to the current line.
Ctrl + r Redo.
Vim command Action
/pattern Search the file for pattern.
n Scan for next search match in the same direction.
N Scan for next search match but opposite direction.
Replace
Vim command Action
:rs/foo/bar/a Substitute foo with bar. r determines the range and a determines the arguments.
The range (r) can be
nothing Work on current line only.
number Work on the line whose number you give.
% The whole file.
Arguments (a) can be
g Replace all occurrences in the line. Without this, Vim replaces only the first occurrences in each line.
i Ignore case for the search pattern.
I Don't ignore case.
c Confirm each substitution. You can type y to substitute this match, n to skip this match, a to substitute this and all the remaining matches ("Yes to all"), and q to quit substitution.
Examples
:452s/foo/bar/ Replace the first occurrence of the word foo with bar on line number 452.
:s/foo/bar/g Replace every occurrence of the word foo with bar on current line.
:%s/foo/bar/g Replace every occurrence of the word foo with bar in the whole file.
:%s/foo/bar/gi The same as above, but ignore the case of the pattern you want to substitute. This replaces foo, FOO, Foo, and so on.
:%s/foo/bar/gc Confirm every substitution.
:%s/foo/bar/c For each line on the file, replace the first occurrence of foo with bar and confirm every substitution.


Отсюда: http://www.tuxfiles.org/linuxhelp/vimcheat.html