Thứ Bảy, 21 tháng 9, 2013

Class 'Mongo' not found

i have installed mongo in ubuntu server but I got error
"Class 'Mongo' not found"

Resolve:
- add make first :  apt-get install make

sudo pecl uninstall mongo 
sudo pecl install mongo
sudo service apache2 restart
 
- edit php.ini :
add the following line to your php.ini file:
   
extension=mongo.so
 
- restart apache:
sudo service apache2 restart
 
 

Thứ Năm, 19 tháng 9, 2013

Dump one table in MySQL Databases

Linux :
in command line
 mysql -u username -p  databasename  < path/example.sql
put your table in example.sql
single table export :
mysqldump  username -p databasename tableName > path/example.sql

Thứ Tư, 18 tháng 9, 2013

Check image exists with php

function exists($uri)
{
    $ch = curl_init($uri);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_exec($ch);
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    return $code == 200;
}
function http_response($url){
    $resURL = curl_init(); 
    curl_setopt($resURL, CURLOPT_URL, $url); 
    curl_setopt($resURL, CURLOPT_BINARYTRANSFER, 1); 
    curl_setopt($resURL, CURLOPT_HEADERFUNCTION, 'curlHeaderCallback'); 
    curl_setopt($resURL, CURLOPT_FAILONERROR, 1); 
    curl_exec ($resURL); 
    $intReturnCode = curl_getinfo($resURL, CURLINFO_HTTP_CODE); 
    curl_close ($resURL); 
    if ($intReturnCode != 200 && $intReturnCode != 302 && $intReturnCode != 304) { return 0; } else return 1;
}

Thứ Sáu, 13 tháng 9, 2013

Tìm hiểu lệnh Crontab trên Linux 4

1. Cron là gì?
Cron là một tiện ích cho phép thực hiện các tác vụ một cách tự động theo định kỳ, ở chế độ nền của hệ thống. Crontab (CRON TABle) là một file chứa đựng bảng biểu (schedule) của các entries được chạy.

2. Cron làm việc thế nào?
Một cron schedule đơn giản là một text file. Mỗi người dùng có một cron schedule riêng, file này thường nằm ở /var/spool/cron. Crontab files không cho phép bạn tạo hoặc chỉnh sửa trực tiếp với bất kỳ trình text editor nào, trừ phi bạn dùng lệnh crontab. Một số lệnh thường dùng:

crontab -e: tạo hoặc chỉnh sửa file crontab
crontab -l: hiển thị file crontab
crontab -r: xóa file crontab
 

3. Cấu trúc của crontab
Một crontab file có 5 trường xác định thời gian, cuối cùng là lệnh sẽ được chạy định kỳ, cấu trúc như sau:
Code:
*     *     *     *     *     command to be executed
-     -     -     -     -
|     |     |     |     |
|     |     |     |     +----- day of week (0 - 6) (Sunday=0)
|     |     |     +------- month (1 - 12)
|     |     +--------- day of month (1 - 31)
|     +----------- hour (0 - 23)
+------------- min (0 - 59)

Nếu một cột được gán ký tự *, nó có nghĩa là tác vụ sau đó sẽ được chạy ở mọi giá trị cho cột đó.

4. Ví dụ
Giả sử tôi viết một đoạn script backup bookmarks trong Firefox như sau:
Code:
#!/bin/bash
date=`date +%F`

cp ~/.mozilla/firefox/13kee53o.default/bookmarks.html /mnt/data/BACKUP/bookmarks-$date.html


sau đó tôi cho script này chạy định kỳ vào 15h thứ Hai và thứ Năm hàng tuần bằng cách tạo một file crontab như sau:
Code:
$ crontab -e
0 15 * * 1,4 sh /mnt/data/linux/code/backupbookmarks.sh

Cuối cùng, nhớ khởi động lại cron daemon:
Code:
/etc/init.d/crond restart


ps: Để muốn "test" ngay xem crontab nó có hoạt động không, bạn có thể sửa lại đoạn script trên một chút:
Code:
#!/bin/bash
date=`date +%F-%H-%M-%S`

cp ~/.mozilla/firefox/13kee53o.default/bookmarks.html /mnt/data/BACKUP/bookmarks-$date.html

và file crontab bạn sẽ cho backup liên tục theo từng phút như sau:
0-59 * * * * sh /mnt/data/linux/code/backupbookmarks.sh 



Tìm hiểu lệnh Crontab trên Linux 3



GIT- Tính năng Cron trong thực chất là 1 chế độ sắp xếp tự động các chương trình, ứng dụng và kích hoạt chúng tại 1 thời điểm nhất định trong hệ thống, tương tự với Task Scheduler của Windows.

Tất cả những gì chúng ta cần làm tại đây là gán các chương trình cần thực thi tới file của hệ thống và sử dụng cấu trúc lệnh phù hợp, cron sẽ tự động thực hiện các ứng dụng đó vào thời điểm đã được thiết lập sẵn trước đó. Do vậy, tính năng này rất phù hợp trong quá trình tự động sao lưu dữ liệu, bảo dưỡng hệ thống… và các công việc tương tự khác.

Cài đặt crontab bằng yum
yum install crontabs.noarch
yum install vixie-cron ( sử dụng lệnh này nếu lệnh trên không hoạt động)
Cron làm việc thế nào?
Một cron schedule đơn giản là một text file. Mỗi người dùng có một cron schedule riêng, file này thường nằm ở /var/spool/cron. Crontab files không cho phép bạn tạo hoặc chỉnh sửa trực tiếp với bất kỳ trình text editor nào, trừ phi bạn dùng lệnh crontab. Một số lệnh thường dùng:

crontab -e: tạo hoặc chỉnh sửa file crontab
crontab -l: hiển thị file crontab
crontab -r: xóa file crontab
Cấu trúc của crontab
Một crontab file có 5 trường xác định thời gian, cuối cùng là lệnh sẽ được chạy định kỳ, cấu trúc như sau:

*     *     *     *     *     command to be executed
-     -     -     -     -
|     |     |     |     |
|     |     |     |     +—– day of week (0 – 6) (Sunday=0)
|     |     |     +——- month (1 – 12)
|     |     +——— day of month (1 – 31)
|     +———– hour (0 – 23)
+————- min (0 – 59)
Nếu một cột được gán ký tự *, nó có nghĩa là tác vụ sau đó sẽ được chạy ở mọi giá trị cho cột đó.
Ví dụ
Giả sử một đoạn script backup database MySQL như sau:

#!/bin/bash
DB=db_gocit_bk_`date +%Y%m%d-%H%M`.sql

/usr/bin/mysqldump -u root –password=’password_gocit’ –databases gocit -R > /backup/database/$DB
gzip /backup/database/$DB
Sau đó cho script này chạy định kỳ vào 4h sáng hàng ngày bằng cách tạo một file crontab như sau:
# crontab -e
0 4  * * * /bin/sh /backup/backup.sh >/dev/null
Cuối cùng, nhớ kiểm tra dịch vụ cron daemon
# /etc/init.d/crond status
Nếu crontab chưa khởi động thì khởi động  bằng lệnh

# /etc/init.d/crond start
#  chkconfig crond on

Tìm hiểu lệnh Crontab trên Linux 2

Quản Trị Mạng - Tính năng Cron trong Linux thực chất là 1 chế độ sắp xếp tự động các chương trình, ứng dụng và kích hoạt chúng tại 1 thời điểm nhất định trong hệ thống, tương tự với Task Scheduler của Windows. Tất cả những gì chúng ta cần làm tại đây là gán các chương trình cần thực thi tới file crontab của hệ thống và sử dụng cấu trúc lệnh phù hợp, cron sẽ tự động thực hiện các ứng dụng đó vào thời điểm đã được thiết lập sẵn trước đó. Do vậy, tính năng này rất phù hợp trong quá trình tự động sao lưu dữ liệu, bảo dưỡng hệ thống... và các công việc tương tự khác.

Mở Crontab:

Trước tiên, các bạn hãy mở Terminal từ menu chính:


mở Terminal

Sử dụng cấu trúc crontab -e để mở file crontab của tài khoản đang sử dụng. Các câu lệnh tại đây sẽ được thực hiện với quyền của tài khoản hiện tại, còn nếu bạn muốn thực thi lệnh trong toàn bộ hệ thống thì hãy áp dụng cấu trúc sudo crontab -e để mở tính năng crontab của tài khoản root. Sử dụng lệnh su -c “crontab -e” nếu distributor Linux của bạn không dùng sudo. Sau đó, hệ thống sẽ hiển thị các tùy chọn editor, chọn Nano nếu có (vì đây là trình editor đơn giản, dễ sử dụng và phù hợp với nhiều người):


sử dụng crontab -e

Các bạn sẽ thấy trình chỉnh sửa text Nano với thông tin GNU nano ở phần header trên cửa sổ Terminal. Và nếu không chọn thì crontab sẽ được mở bằng Vi:


thay đổi editor

Nếu không muốn sử dụng Vi thì các bạn gõ lệnh :quit và nhấn Enter để thoát khỏi Vi. Sau đó gõ export EDITOR=nano và crontab -e để mở file crontab bằng Nano.

Gán tác vụ mới:

Sử dụng phím mũi tên lên xuống hoặc Page Down để di chuyển xuống phía cuối file crontab trong Nano. Tất cả các dòng bắt đầu bằng # nghĩa là đã được cron bỏ qua, bên cạnh đó chúng còn giữ chức năng lưu trữ thông tin gợi ý khi người dùng chỉnh sửa đoạn mã bất kỳ nào đó.


gán tác vụ vào crontab

Cụ thể, cấu trúc lệnh được viết trong crontab phải tuân theo quy chuẩn và chấp nhận những giá trị sau:
minute(0-59) hour(0-23) day(1-31) month(1-12) weekday(0-6) command

Và nếu muốn áp dụng bất kỳ giá trị nào, các bạn chỉ cần thay bằng ký tự đặc biệt *. Ví dụ nếu muốn thực hiện câu lệnh /usr/bin/example vào lúc 12:30 AM hàng ngày thì sử dụng lệnh:
29 0 * * * /usr/bin/example

chỉ định khoảng thời gian cụ thể

Tại đây chúng ta sử dụng giá trị 29 thay vì phút thứ 30 và 0 thay cho 12h AM, bởi vì đơn vị thời gian tính theo phút, giờ và ngày sẽ bắt đầu bằng 0. Tuy nhiên, các bạn cần lưu ý rằng ngày và tháng lại bắt đầu bằng 1.

Sử dụng cấu trúc ngăn cách bằng dấu phẩy để chỉ định nhiều khoảng thời gian khác nhau. Ví dụ:
0,14,29,44 * * * * /usr/bin/example2

sẽ thực hiện lệnh /usr/bin/example2 vào phút thứ 15 mỗi giờ trong ngày. Mặt khác, chúng ta có thể sử dụng cấu trúc lệnh như dưới đây để áp dụng trong 1 khoảng thời gian nhất định nào đó:
0 11 * 1-6 * /usr/bin/example3

thì hệ thống sẽ chạy lệnh /usr/bin/example3 trưa chiều mỗi ngày, nhưng chỉ từ tháng 1 tới tháng 6.


chỉ định khoảng thời gian nhất định

Sau khi chỉ định toàn bộ các tham số cần thiết tại đây, chúng ta nhấn Ctrl + O và nhấn Enter để lưu file crontab trong Nano. Sau đó nhấn Ctrl + X để đóng Nano, các bạn sẽ thấy dòng thông báo:
“crontab: installing new crontab”

nghĩa là file crontab và các tác vụ đi kèm đã được thiết lập hoàn tất.


quá trình thiết lập cron hoàn tất


Chúc các bạn thành công!

Tìm hiểu lệnh Crontab trên Linux 1

Tìm hiểu lệnh Crontab trên Linux


1. Crontab là gì?

Crontab là một tiện ích cho phép thực hiện các tác vụ một cách tự động theo định kỳ, ở chế độ nền của hệ thống.Crontab (CRON TABLE) là một file chứa đựng bảng biểu (schedule) của các entries được chạy.

2. Crontab làm việc thế nào?

Một crontab schedule đơn giản là một text file. Mỗi người dùng có một cron schedule riêng, file này thường nằm ở/var/spool/cronCrontab files không cho phép bạn tạo hoặc chỉnh sửa trực tiếp với bất kỳ trình text editor nào, trừ phi bạn dùng lệnh crontab. Một số lệnh thường dùng:
  • crontab -e: tạo hoặc chỉnh sửa file crontab
  • crontab -l: hiển thị file crontab
  • crontab -r: xóa file crontab

3. Cấu trúc của crontab

Một crontab file có 5 trường xác định thời gian, cuối cùng là lệnh sẽ được chạy định kỳ, cấu trúc như sau:
 * * * * * command to be executed

 - - - - -

 | | | | |

 | | | | +&mdash;&ndash; day of week (0 &ndash; 6) (Sunday=0)

 | | | +&mdash;&mdash;- month (1 &ndash; 12)

 | | +&mdash;&mdash;&mdash; day of month (1 &ndash; 31)

 | +&mdash;&mdash;&mdash;&ndash; hour (0 &ndash; 23)

 +&mdash;&mdash;&mdash;&mdash;- min (0 &ndash; 59)
Nếu một cột được gán ký tự *, nó có nghĩa là tác vụ sau đó sẽ được chạy ở mọi giá trị cho cột đó.

4. Ví dụ

Giả sử tôi viết một đoạn script backup bookmarks trong Firefox như sau:
  #!/bin/bash

 date=`date +%F`

 cp ~/.mozilla/firefox/13kee53o.default/bookmarks.html /mnt/data/BACKUP/bookmarks-$date.html
Sau đó tôi cho script này chạy định kỳ vào 15h thứ Ba và thứ Bảy hàng tuần bằng cách tạo một file crontab như sau:
 $ crontab -e

 0 15 * * 2,6 sh /mnt/data/linux/code/backupbookmarks.sh

Cuối cùng, nhớ khởi động lại cron daemon:
/etc/init.d/crond restart


Thứ Năm, 12 tháng 9, 2013

Sử dụng Vim trong Ubuntu

1.Giới thiệu về Vim

Vim – Vi iMprove là bản cải thiện của Vim – một trình soạn thảo phổ biến trên Unix. Vim có tính cấu hình rất cao được xây dựng để cho phép chỉnh sửa văn bản hiệu quả.
Vim thường được gọi là trình soạn thảo của các lập trình viên vì nó rất hữu ích trong lập trình. Vim có thể được nhúng vào trong các IDE mạnh mẽ như Visual Studio hay Qt Creator, Eclipse, … Vim cũng có thể sử dụng trực tiếp trên nền đồ họa bởi gVim hoặc khởi động từ terminal.

2. Cài đặt Vim

Có thể sử dụng gVim chạy được trên cả Linux lẫn Windows như 1 trình soạn thảo độc lập.
Link download gVim: http://www.Vim.org/download.php
Trong Ubuntu có thể cài đặt gVim bằng câu lệnh: sudo apt-get install gvim

3.  Các chế độ làm việc của Vim

Vim làm việc theo 3 chế độ: Chế độ câu lệnh, chế độ
nhập liệu và chế độ trực quan (visual).
- Ở chế độ câu lệnh, những gì bạn gõ vào sẽ được hiểu như là câu lệnh ra lệnh cho Vim.
Lệnh sẽ bảo Vim lưu tập tin, thoát khỏi Vim, chuyển con trỏ đến các vị trí khác nhau trong tập tin, chỉnh sửa, sắp xếp, xóa bỏ, thay thế và tìm kiếm đoạn văn bản, …
- Ở chế độ nhập liệu hoặc còn gọi là nhập văn bản (chế độ INSERT), những gì bạn gõ vào được máy hiểu là nội dung của tập tin mà bạn đang chỉnh sửa. Theo chế độ này, Vim soạn thảo
giống như trình soạn thảo đơn thuần.

- Chế độ Visual là 1 mở rộng của Vim so với vi, là 1 cách đơn giản và mềm dẻo để chọn / bôi đen văn bản.
Vim khởi động ở chế độ câu lệnh:
Để chuyển sang chế độ nhập liệu, phải gõ kí tự “a” hoặc “i”:
Dễ thấy khi chuyển sang chế độ nhập liệu có dòng chữ – INSERT – ở dòng cuối cùng.
Lệnh trong Vim có phân biệt chữ hoa chữ thường.
Để chuyển lại sang chế độ lệnh thì nhấn phím ESC.
Tương tự như notepad++ trên Windows, khi mở hoặc tạo các tập tin có phần mở rộng là: html, cpp, c, … Vim sẽ làm sáng các từ khóa, biến, …
Để thực hiện chức năng này, bạn có thể mở các file có sẵn bằng Vim:
  • Khởi động gVim, chọn File/Open, chọn file cần mở.
  • Khởi động gVim, sau đó :e “đường dẫn đến file cần mở”
  • Trỏ phải vào tên file, chọn Open with gVim
Bạn có thể thiết lập ngôn ngữ lập trình cho Vim mà chưa cần phải lưu tên file bằng cách chọn Syntax/Show Filetypes in menu rồi sau đó vào lại menu Syntax để chọn ngôn ngữ lập trình thích hợp. Hoặc :setf “tên phần mở rộng ngôn ngữ” hay :set language=”tên phần mở rộng ngôn ngữ”
Ví dụ: :setf cpp hay :set language=cpp để thiết lập cú pháp ngôn ngữ C++ 
Ta có thể dùng :syntax on/off để bật/tắt chức năng này.
Trong chế độ lệnh có thể di chuyển con trỏ bằng các phím h, j, k, l tương ứng với sang trái, xuống dưới, lên trên và sang phải.
Để thoát khỏi Vim, có thể dùng menu lệnh: File/Exit hoặc  :x  lưu trước khi thoát hoặc :q! không lưu gì cả. Chi tiết các lệnh sẽ được giới thiệu ở phần sau.

4. Các lệnh cơ bản của Vim

Làm việc với files
Vim command Action
:e filename Mở file.
:w filename Lưu file.
:q Thoát khỏi Vim. Lệnh sẽ vô hiệu nếu file chưa được lưu
:q! Thoát khỏi Vim kể cả file chưa được lưu
:wq Lưu và thoát
:x Lưu và thoát. Tương tự :wq
Sử dụng cả trong chế độ Command và Visual
Vim command Action
j or Up Arrow Di chuyển lên trên 1 dòng. Lưu ý là dòng được kết thúc bằng kí tự Enter.
k or Down Arrow Di chuyển xuống dưới 1 dòng
h or Left Arrow Sang trái 1 kí tự
l or Right Arrow Sang phải 1 kí tự
e Di chuyển về cuối từ, bao gồm cả dấu ,”.?!”
E Chuyển về cuối từ kết thúc bằng dấu cách
b Di chuyển về đầu từ
B Di chuyển về đầu từ được bắt đầu bằng dấu cách.
0 Di chuyển về đầu dòng
^ Di chuyển về kí tự đầu tiên không phải dấu cách của dòng
$ Di chuyển về cuối dòng
H Di chuyển về đầu dòng đầu tiên
M Di chuyển về đầu dòng giữa
L Di chuyển về đầu dòng cuối
:n Di chuyển về đầu dòng có vị trí n
Chèn và đè văn bản
Vim command Action
i Chèn phía trước con trỏ
I Chèn vào đầu dòng
a Chèn phía sau con trỏ
A Chèn vào cuối dòng
o Chèn dòng mới vào bên dưới dòng hiện tại
O Chèn dòng mới vào bên trên dòng hiện tại
C Xóa từ vị trí con trỏ đến cuối dòng hiện tại để chèn.
r Thay thế / ghi đè 1 kí tự.
R Thay thế / ghi đè nhiều kí tự. Ấn ESC để kết thúc.
The ESC key Thoát khỏi chức năng soạn thảo. Chuyển về chức năng lệnh.
Xóa văn bản
Vim command Action
x Xóa kí tự hiện tại ở vị trí con trỏ.
X Xóa kí tự phái trước con trỏ.
dd or :d Xóa dòng hiện tại.
Chế độ Visual
Vim command Action
v Bắt đầu bôi đen kí tự. Sử dùng các lệnh di chuyển để chọn văn bản 1 cách thích hợp.
V Bắt đầu bôi đen dòng
The ESC key Thoát khỏi chế độ Visual trở về chế độ lệnh
Chỉnh sửa văn bản
Chú ý: Đánh dấu (V) là làm việc trong chế độ Visual, khi bạn đánh dấu văn bản. Các lệnh khác làm việc ở chế độ lệnh, khi không có đoạn văn bản nào được chọn.
Vim command Action
~ Chuyển đổi từ kí tự thường sang hoa hoặc ngược lại. Làm việc ở cả chế độ Visual và chế độ lệnh.
> (V) Thụt lề sang phải.
< (V) Thụt lề sang trái.
c (V) Xóa đoạn văn bản được đánh dấu để chèn.
y (V) Sao chép đoạn văn bản được đánh dấu vào bộ nhớ đệm.
d (V) Cắt đoạn văn bản trong bộ nhớ đệm vào vị trí con trỏ.
yy or :y or Y Sao chép 1 dòng.
dd or :d Xóa 1 dòng.
p Dán đoạn văn bản trong bộ nhớ đệm vào sau vị trí con trỏ. Nếu cả dòng thì dán vào vị trí dòng bên dưới.
P Dán đoạn văn bản trong bộ nhớ đệm vào trước vị trí con trỏ. Nếu cả dòng thì dán vào vị trí dòng bên trên.
Undo và redo
Vim command Action
u Undo.
U Undo tất cả các thao tác thực hiện với dòng hiện tại.
Ctrl + r Redo.
Vim command Action
/chuỗi Tìm kiếm chuỗi
n Sử dụng sau lệnh /, tìm chuỗi phù hợp tiếp theo (tìm về cuối)
N Sử dụng sau lệnh /, tìm chuỗi phù hợp phía trước (tìm về đầu)
Thay thế
Vim command Action
:rs/foo/bar/a Substitute foo with barr determines the range and a determines the arguments.
Thay thế foo bởi bar, trong đó r và a có thể thay đổi.
r có thể là:
Không gì cả Làm việc với dòng hiện tại.
number Làm việc trên dòng number được chỉ định
% Toàn bộ văn bản
g có thể là:
g Thay thế toàn bộ, nếu không có tham số này. Vim chỉ thay thế mẫu đầu tiên tìm được trên mỗi dòng.
i Không phân biệt chữ hoa chữ thường
I Phân biệt cả hoa – thường (mặc định)
c Có lựa chọn trước khi thay thế. Khi lựa chọn xuâts hiện, ấn y để đồng ý, n để bỏ qua, a để đồng ý toàn bộ, q để thoát


5. Thiết lập môi trường trong Vim

Vim có nhiều tùy chọn để bạn dùng hay không tùy ý. Dành cho bạn sắp xếp môi trường soạn thảo cho riêng mình.Dưới đây là một số tùy chọn thường được sử dụng:


Viết tắt Nguyên tên và Chức năng
ai autoindent sẽ thụt lề mỗi dòng cho cùng với dòng phía trên. Mặc đình off.
ap autoprint in dòng hiện hành lên màn hình khi dòng thay đổi. Mặc định là on.
eb errorbells làm cho máy kêu bíp mỗi khi gõ sai lệnh. Mặc định off.
nu number hiển thị số hiệu của dòng. Mặc định off
redraw redraw cập nhật màn hình mỗi khi có thay đổi. Mặc định on
report report lập ra kích cỡ của một thay đổi trong tiến trình hiệu chỉnh, và đưa kết quả ra dòng trạng thái. Ví dụ, report=3 sẽ bắn lời nhắn mỗi khí bạn ra lệnh xóa nhiều hơn 3 dòng, song sẽ im lặng nếu bạn xóa ít hơn 3 dòng. Mặc định report=5
sm showmatch hiển thị một dấu mở ngoặc nếu bạn gõ vào một dấu đóng ngoặc. Rất tiện cho lập trình viên. Mặc định là off.
smd showmode hiển thị các thông báo chế độ như: Insert, Visual, … mặc định là on
warn warn hiển thị thông báo khi bạn thoát khỏi Vim khi vùng đệm bị thay đổi mà chưa được lưu. Mặc định là on.
wm=n wrapmargin xác định lề phải. Mặc định wm=0
sw shiftwidth số khoảng trắng khi tab lùi (Ctrl+D)trong lúc dùng autoindent và sử dụng cho lệnh << và >>. Mặc định sw=8
ts tabstop định số khoảng trắng khi tab. Mặc định ts=8

Để sử dụng các tùy chọn trên, bạn sử dụng lệnh :set “tên tùy chọn[=tham số]“. Ví dụ:
:set ai eb sw=4 ts=4
Lệnh trên sẽ thiết lập autoindent, errorbells (tham số này không làm việc trên gVim), shift width =4 và tabstop =4.

Nếu muốn xem các thiết lập của Vim, bạn chỉ đánh lệnh :set mà không sử dụng đối số.
Muốn xem danh sách các tùy chọn và cách thiết lập, bạn gõ :set all
Muốn tắt một tùy chọn, bạn thêm “no” vào trước tên tùy chọn đó vào trong lệnh :set


Ví dụ: 
:set nonumber nowarn
Để sử dụng các tùy chọn này là mặc định cho các lần sử dụng tiếp theo, bạn có thể chỉnh sửa file: ~/.vimrc
Trong gVim, bạn có thể chỉnh sửa bằng cách chọn: Edit/Startup Settings:




Để thiết lập từng tùy chọn cho từng ngôn ngữ, bạn có thể dùng lệnh:
autocmd Filetype <tên mở rộng của ngôn ngữ> set local <các tùy chọn của lệnh set>
Để thay đổi thiết lập màu nền cũng như màu chữ theo các mẫu có sẵn của Vim, bạn dùng lệnh:
colorscheme <tên mẫu>
tên mẫu có thể là: ron, blue, dark, …
hoặc trong gVim có thể chọn Edit/Color Scheme, chọn mẫu phù hợp.



6. Tabs trong Vim
Tabs ở đây là các thẻ tab dùng cho soạn thảo nhiều tài liệu khác nhau đồng thời một cách đơn giản hơn thay vì mở nhiều chương trình Vim.
Để mở nhiều file một lúc trên các tab khác nhau, bạn có thể dùng câu lệnh sau vim với tham số -p trong terminal:
vim -p file1 file2 file3
Đang trong quá trình soạn thảo, muốn tạo mới một tab để soạn thảo văn bản khác có thể dùng lệnh:
:tabnew [tên file] hoặc :tabe [tên file]
Mặc định số tab có thể mở nhiều nhất là 10, nhưng bạn cũng có thể thay đổi thành n tab bằng câu lệnh:
:set tabpagemax=n
Để xem thông tin về các tab đang được mở, sử dụng lệnh:
:tabs
Để di chuyển giữa các tab có thể dùng lệnh :tabn (tab next) di chuyển đến tab phía sau hoặc :tabp (tab previous) di chuyển về tab phía trước.
Bạn cũng có thể di chuyển giữa các tab bằng lệnh gt
Để chuyển về tab đầu tiên dùng lệnh:
:tabfirst hoặc :tabfir
Lệnh di chuyển đến tab cuối cùng là: :tablast
Để hiển thị tab bar hay không bạn có thể dùng lệnh:
:set showtabline=n
trong đó n có giá trị là 2 hoặc 0 tương đương với hiển thị hoặc không hiển thị.
Để di chuyển tab hiện tại đến vị trí khác trong tab bar, có thể dùng lệnh:
:tabm vị trí
chú ý là vị trí tab bắt đầu từ 0.
Để thoát khỏi tất cả các tab bạn dùng lệnh: :qa hoặc :qa! hoặc :wqa hoặc :x a tùy vào mục đích muốn tthoát.

7. Marco trong Vim
Như bạn đã biết, để lặp lại lệnh đã thực hiện trước đó trong Vim có thể dùng lệnh . nhưng lệnh . chỉ lặp lại các thao tác trong 1 lần nhấn phím ESC. Marco là một tính năng mạnh mẽ hơn lệnh . giúp bạn lặp lại nhiều thay đổi hơn.
Để bắt đầu sử dụng Marco nhấn q, tiếp tục nhấn một phím kí tự bất kì từ a đến z đại diện cho tên marco, sau đó thực hiện các thao tác muốn lặp lại, sau đó lại nhấn q để kết thúc marco đó. Để áp dụng marco thì nhấn @ rồi nhấn tên marco.
Ví dụ:
Để bao hàm một số thư viện trong C:
#include “stdio.h”
#include “stdlib.h”
#include “math.h”
#include “string.h”
thay vì đánh toàn bộ đoạn mã trên, ta chỉ đánh tên các thư viện:
stdio.h
stdlib.h
math.h
string.h
Sau đó nhấn ESC để trở về chế độ lệnh, lúc này con trỏ vẫn đang ở dòng cuối cùng, nhấn qa để bắt đầu marco, tên marco là a nếu là qb thì tên marco là b, nhấn a để thêm ” vào cuối, sau đó nhấn ESC, nhấn I để trở về đầu dòng, thêm #include “, sau đó nhấn ESC, nhấn k để trở về dòng bên trên, sau đó nhấn q để kết thúc marco. Nhấn nhiều lần @a để áp dụng marco bạn sẽ thấy kết quả ra đúng như lúc đầu mong muốn.
Để áp dụng marco n lần có thể dùng lệnh: n @ tên marco
Như trong ví dụ trên thay vì nhấn 3 lần @a ta có thể trực tiếp nhấn 3@a.


Học lập trình web căn bản với PHP

Bài 1: Các kiến thức căn bản Part 1:  https://jimmyvan88.blogspot.com/2012/05/can-ban-lap-trinh-web-voi-php-bai-1-cac.html Part 2:  https://...