<!DOCTYPE html>
    <html lang="vi" xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
    <head>
<title>Tìm hiểu về ứng dụng Vi trong Linux</title>
<meta name="description" content="Tìm hiểu về ứng dụng Vi trong Linux - Savefile - Tin Tức -...">
<meta name="author" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :.">
<meta name="copyright" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :. [admin@nguoicodonvn2008.info]">
<meta name="robots" content="index, archive, follow, noodp">
<meta name="googlebot" content="index,archive,follow,noodp">
<meta name="msnbot" content="all,index,follow">
<meta name="generator" content="NukeViet v4.5">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta property="og:title" content="Tìm hiểu về ứng dụng Vi trong Linux">
<meta property="og:type" content="website">
<meta property="og:description" content="Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;www.nguoicodonvn2008.info&#x002F;vi&#x002F;news&#x002F;savefile&#x002F;kien-thuc-may-tinh&#x002F;tim-hieu-ve-ung-dung-vi-trong-linux-8673.html">
<meta property="og:site_name" content=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.">
<meta property="og:url" content="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/tim-hieu-ve-ung-dung-vi-trong-linux-8673.html">
<link rel="shortcut icon" href="https://www.nguoicodonvn2008.info/favicon.ico">
<link rel="canonical" href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/tim-hieu-ve-ung-dung-vi-trong-linux-8673.html">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/" title="Tin Tức" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/karaoke-dual/" title="Tin Tức - Karaoke Dual" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/nhac-tre/" title="Tin Tức - Nhạc trẻ" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tru-tinh/" title="Tin Tức - Trữ tình" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/nuoc-ngoai/" title="Tin Tức - Nước ngoài" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/remix/" title="Tin Tức - Remix" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tam-su-tinh-yeu/" title="Tin Tức - Tâm sự tình yêu" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tho-suu-tam/" title="Tin Tức - Thơ sưu tầm" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/cuoc-song/" title="Tin Tức - Cuộc sống" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/phan-mem/" title="Tin Tức - Phần mềm" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/kien-thuc-may-tinh/" title="Tin Tức - Kiến thức máy tính" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/hoc-tap/" title="Tin Tức - Học tập" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tai-lieu/" title="Tin Tức - Tài liệu" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/de-thi/" title="Tin Tức - Đề thi" type="application/rss+xml">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/assets/css/font-awesome.min.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/style.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/style.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/news.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/custom.css" type="text/css">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/jquery/jquery.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/language/vi.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/global.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/site.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/news.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/main.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/custom.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/bootstrap.min.js" type="text/javascript">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/assets/css/font-awesome.min.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/style.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/style.non-responsive.css">
<link rel="StyleSheet" href="https://www.nguoicodonvn2008.info/themes/default/css/news.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/custom.css">
<style type="text/css">
	body{background: #fff;}
</style>
    </head>
    <body>
<div id="print">
	<div id="hd_print">
		<h2 class="pull-left">.&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.</h2>
		<p class="pull-right"><a title=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;." href="https://www.nguoicodonvn2008.info/">https://www.nguoicodonvn2008.info</a></p>
	</div>
	<div class="clear"></div>
	<hr />
	<div id="content">
		<h1>Tìm hiểu về ứng dụng Vi trong Linux</h1>
		<ul class="list-inline">
			<li>Thứ ba - 16/07/2024 00:14</li>
			<li class="hidden-print txtrequired"><em class="fa fa-print">&nbsp;</em><a title="In ra" href="javascript:;" onclick="window.print()">In ra</a></li>
			<li class="hidden-print txtrequired"><em class="fa fa-power-off">&nbsp;</em><a title="Đóng cửa sổ này" href="javascript:;" onclick="window.close()">Đóng cửa sổ này</a></li>
		</ul>
		<div class="clear"></div>
		<div id="hometext">
		</div>
				<div class="imghome">
			<img alt="Tìm hiểu về ứng dụng Vi trong Linux" src="https://st.quantrimang.com/photos/image/2018/11/20/vi-trong-linux-8.jpg" width="460" class="img-thumbnail" />
		</div>
		<div class="clear"></div>
		<div id="bodytext" class="clearfix">
			<p style="text-align: justify;">Đối với người dùng&nbsp;Linux&nbsp;thì Vi – ứng dụng soạn thảo, chỉnh sửa text chính là 1 trong những công cụ hỗ trợ không thể thiếu. Không giống như Nano – ứng dụng chỉnh sửa text dưới dạng Terminal, Vi có hệ thống các phím tắt chức năng khá đa dạng và hữu ích, với 2 chế độ hoạt động chính là Insert và Command.</p>

<h2 id="mcetoc_1gb1u2gnfo" style="text-align: justify;">Vi là gì?</h2>

<p style="text-align: justify;">Vi là một trình chỉnh sửa dành cho Linux, Unix và các hệ điều hành giống Unix khác. Vi là viết tắt của visual instrument. Nó là một trình soạn thảo văn bản mặc định được sử dụng rộng rãi cho các hệ thống dựa trên Unix và đi kèm với tất cả các phiên bản Unix. Nó chỉ sử dụng bàn phím và cung cấp một giao diện rất hiệu quả để chỉnh sửa những chương trình và script.</p>

<p style="text-align: justify;">So với một chương trình xử lý text chung chung, VI được điều chỉnh cho phù hợp với một cấu hình cụ thể hơn về cách sử dụng và người dùng - những người lập trình của các hệ thống dựa trên UNIX.</p>

<p style="text-align: justify;">Không giống như các trình xử lý văn bản dựa trên Windows phổ biến rộng rãi (chẳng hạn như Notepad và Word của Microsoft), VI không cung cấp bất kỳ khả năng định dạng nào.</p>

<p style="text-align: justify;">Chương trình VI ban đầu được viết bởi Bill Joy vào năm 1976 và trở thành một phần của Single Unix Specification Standard, yêu cầu mọi bản phân phối Unix phù hợp phải bao gồm nó. Cho đến sự nổi lên của Emacs, một trình soạn thảo văn bản phổ biến khác, vào năm 1984, VI vẫn là trình soạn thảo Unix tiêu chuẩn trên thực tế. Thậm chí, cuộc khảo sát năm 2009 của độc giả Linux Journal cũng đã đánh giá VI là trình soạn thảo văn bản được sử dụng nhiều nhất, đẩy Emacs xuống vị trí thứ hai.</p>

<div style="text-align: justify;"><iframe allow="autoplay" allowtransparency="true" aria-label="Advertisement" data-google-container-id="a!2" data-google-query-id="CPCkpILZqocDFVyD6QUdKjkAyg" data-load-complete="true" frameborder="0" height="0" hspace="0" id="aswift_1" marginheight="0" marginwidth="0" name="aswift_1" sandbox="allow-scripts allow-same-origin allow-forms allow-presentation" scrolling="no" tabindex="0" title="Advertisement" vspace="0" width="478"></iframe></div>

<p style="text-align: justify;">Vi thực sự có một trình chỉnh sửa cơ bản được gọi là ex. Vi là chế độ trực quan của ex. Để thực hiện các lệnh vốn có đối với trình soạn thảo dòng lệnh cũ, dấu hai chấm (:) được sử dụng. Ngoài ra còn có hai chế độ hoạt động chính: Chế độ lệnh và chế độ chèn. Để quay lại chế độ lệnh, chỉ cần nhấn phím ESC.</p>

<h2 id="mcetoc_1cso34edk0" style="text-align: justify;">Mở Vi trên Linux</h2>

<p style="text-align: justify;">Vi thực chất là 1 ứng dụng&nbsp;<strong>Terminal</strong>, so vậy các bạn sẽ phải khởi động từ cửa sổ&nbsp;<strong>Terminal</strong>&nbsp;tương ứng. Dùng cú pháp vi&nbsp;<strong>/path/to/file</strong>&nbsp;để mở file text có sẵn bằng Vi, và lệnh đó cũng sẽ hoạt động nếu file text được chỉ định không có sẵn, thay vào đó Vi sẽ tự tạo ra file text với tên như vậy.</p>

<p style="text-align: justify;"><img align="absMiddle" alt="ví dụ khi mở Terminal" border="0" data-i="0" data-src="https://st.quantrimang.com/photos/image/012012/13/vieditor--02.jpg" data-was-processed="true" src="https://st.quantrimang.com/photos/image/012012/13/vieditor--02.jpg" /></p>

<p style="text-align: justify;">Lưu ý rằng chúng ta cần phải dùng lệnh sudo nếu muốn chỉnh sửa file hệ thống, ví dụ: nếu muốn sửa file&nbsp;<a href="https://quantrimang.com/cong-nghe/kiem-soat-he-thong-linux-bang-fstab-67484" rel="noopener" title="Kiểm soát hệ thống Linux bằng fstab">Fstab</a>&nbsp;của hệ thống thì các bạn gõ lệnh:</p>

<p style="text-align: justify;"><em>sudo vi /etc/fstab</em></p>

<p style="text-align: justify;">Nếu bạn dùng phiên bản hệ điều hành không phải Ubuntu của Linux thì thay thế&nbsp;<strong>sudo&nbsp;</strong>bằng su<strong>.</strong></p>

<h2 id="mcetoc_1cso34edl1" style="text-align: justify;">Chế độ Command</h2>

<p style="text-align: justify;">Dưới đây là hỉnh ảnh khi chúng ta mở file bằng Vi, trông như có vẻ chúng ta có thể gõ ký tự vào đây, nhưng thực chất thì không phải. Vi thực chất là ứng dụng soạn thảo bằng phương thức, và được mở bằng chế độ&nbsp;<strong>Command</strong>:</p>

<p style="text-align: justify;"><img align="absMiddle" alt="chế độ Command" border="0" data-i="1" data-src="https://st.quantrimang.com/photos/image/012012/13/vieditor--03.jpg" data-was-processed="true" src="https://st.quantrimang.com/photos/image/012012/13/vieditor--03.jpg" /></p>

<p style="text-align: justify;">Khi ở trong chế độ&nbsp;<strong>Command</strong>, chúng ta có thể di chuyển con trỏ bằng cách nhấn phím mũi tên, nhấn x để xóa ký tự ngay dưới con trỏ, còn nhấn dd để xóa toàn bộ dòng ký tự. Bên cạnh đó, các bạn có thể lựa chọn, copy, cut và lưu đoạn text trong chế độ này. Di chuyển con trỏ sang bên trái hoặc phải của ký tự cần copy và nhấn phím v, nhấn x để cắt đoạn text, sau đó đặt con trỏ vào vị trí cần di chuyển đoạn text và nhấn p để paste:</p>

<p style="text-align: justify;"><img align="absMiddle" alt="nhập text" border="0" data-i="2" data-src="https://st.quantrimang.com/photos/image/012012/13/vieditor--04.jpg" data-was-processed="true" src="https://st.quantrimang.com/photos/image/012012/13/vieditor--04.jpg" /></p>

<h2 id="mcetoc_1cso34edl2" style="text-align: justify;">Chế độ Insert</h2>

<p style="text-align: justify;">Đây là chế độ hoạt động của Vi cho phép người dùng chèn thêm ký tự vào văn bản. Chỉ cần nhấn nút I là chúng ta đã chuyển sang chế độ&nbsp;<strong>Insert&nbsp;</strong>sau khi xác định vị trí con trỏ trong chế độ&nbsp;<strong>Command</strong>:</p>

<p style="text-align: justify;"><img align="absMiddle" alt="chế độ Insert" border="0" data-i="3" data-src="https://st.quantrimang.com/photos/image/012012/13/vieditor--05.jpg" data-was-processed="true" src="https://st.quantrimang.com/photos/image/012012/13/vieditor--05.jpg" /></p>

<p style="text-align: justify;">Khi nhập xong đoạn nội dung cần thiết, nhấn phím&nbsp;<strong>Escape&nbsp;</strong>để quay về chế độ&nbsp;<strong>Command</strong>.</p>

<h2 id="mcetoc_1cso34edl3" style="text-align: justify;">Saving và Quiting</h2>

<p style="text-align: justify;">Các bạn có thể lưu và thoát ứng dụng trong chế độ&nbsp;<strong>Command&nbsp;</strong>(nhấn&nbsp;<strong>Escape&nbsp;</strong>để chắc chắn rằng chúng ta đã ở trong chế độ này). Gõ :wq để lưu file sau khi thay đổi và đóng Vi, hoặc thực hiện riêng rẽ thành 2 công đoạn, :w để lưu file và :q để thoát chương trình mà không lưu lại thay đổi:</p>

<div style="text-align: justify;"><iframe allow="autoplay" allowtransparency="true" aria-label="Advertisement" data-google-container-id="a!3" data-google-query-id="CKOjg5_ZqocDFUeV6QUdM3gDnA" data-load-complete="true" frameborder="0" height="0" hspace="0" id="aswift_2" marginheight="0" marginwidth="0" name="aswift_2" sandbox="allow-scripts allow-same-origin allow-forms allow-presentation" scrolling="no" tabindex="0" title="Advertisement" vspace="0" width="478"></iframe></div>

<p style="text-align: justify;"><img align="absMiddle" alt="lưu và thoát ứng dụng" border="0" data-i="4" data-src="https://st.quantrimang.com/photos/image/012012/13/vieditor--06.jpg" data-was-processed="true" src="https://st.quantrimang.com/photos/image/012012/13/vieditor--06.jpg" /></p>

<p style="text-align: justify;">Nhưng Vi sẽ không cho người dùng đóng ứng dụng nếu đã thay đổi từ lần lưu cuối cùng, gõ lệnh :q! Và nhấn Enter để bỏ qua cảnh báo này:</p>

<p style="text-align: justify;"><img align="absMiddle" alt="" border="0" data-i="5" data-src="https://st.quantrimang.com/photos/image/012012/13/vieditor--07.jpg" data-was-processed="true" src="https://st.quantrimang.com/photos/image/012012/13/vieditor--07.jpg" /></p>

<h2 id="mcetoc_1cso34edl4" style="text-align: justify;">Viết một chương trình C rất nhỏ bằng cách sử dụng Vi</h2>

<p style="text-align: justify;">Mở một Terminal.</p>

<p style="text-align: justify;">Hãy nhập:</p>

<pre id="pre0">
<code>vi file.c</code></pre>

<p style="text-align: justify;">Điều này sẽ tạo ra một file mới.</p>

<p style="text-align: justify;"><img alt="vi file.c" data-i="6" data-src="https://st.quantrimang.com/photos/image/2018/11/20/vi-trong-linux-1.jpg" data-was-processed="true" height="500" src="https://st.quantrimang.com/photos/image/2018/11/20/vi-trong-linux-1.jpg" width="467" /></p>

<p style="text-align: justify;">Vi ở chế độ&nbsp;<strong>Command</strong>&nbsp;theo mặc định. Vì vậy, nếu bạn muốn viết một cái gì đó, bạn không thể thực hiện điều này.</p>

<p style="text-align: justify;">Gõ&nbsp;<strong>“i”</strong>&nbsp;để có thể viết code của bạn.</p>

<p style="text-align: justify;"><img alt="Gõ i" data-i="7" data-src="https://st.quantrimang.com/photos/image/2018/11/20/vi-trong-linux-2.jpg" data-was-processed="true" height="410" src="https://st.quantrimang.com/photos/image/2018/11/20/vi-trong-linux-2.jpg" width="384" /></p>

<p style="text-align: justify;">Bây giờ, bạn sẽ ở trong chế độ&nbsp;<strong>Insert,</strong>&nbsp;nhưng nếu bạn muốn xóa một ký tự, bạn không thể làm điều đó.</p>

<p style="text-align: justify;">Gõ&nbsp;<strong>ESC</strong>&nbsp;để đổi sang chế độ Command.</p>

<p style="text-align: justify;">Trong chế độ Command, gõ&nbsp;<strong>“x”.</strong>&nbsp;Thao tác này sẽ xóa ký tự dưới con trỏ.</p>

<p style="text-align: justify;"><img alt="Gõ x" data-i="8" data-src="https://st.quantrimang.com/photos/image/2018/11/20/vi-trong-linux-3.jpg" data-was-processed="true" height="423" src="https://st.quantrimang.com/photos/image/2018/11/20/vi-trong-linux-3.jpg" width="395" /></p>

<div style="text-align: justify;"><iframe allow="autoplay" allowtransparency="true" aria-label="Advertisement" data-google-container-id="a!4" data-google-query-id="CJH3jKnZqocDFQqG6QUdWsYOLw" data-load-complete="true" frameborder="0" height="0" hspace="0" id="aswift_3" marginheight="0" marginwidth="0" name="aswift_3" sandbox="allow-scripts allow-same-origin allow-forms allow-presentation" scrolling="no" tabindex="0" title="Advertisement" vspace="0" width="478"></iframe></div>

<p style="text-align: justify;">Bạn có thể chèn một ký tự ở bên trái con trỏ bằng cách gõ&nbsp;<strong>“i”.</strong></p>

<p style="text-align: justify;">Bạn có thể chèn ký tự ở bên phải con trỏ bằng cách gõ&nbsp;<strong>“a”.</strong></p>

<p style="text-align: justify;">Chèn dấu&nbsp;<strong>“&gt;”</strong>&nbsp;vào văn bản.</p>

<p style="text-align: justify;"><img alt="Chèn &gt;" data-adbro-processed="true" data-i="9" data-src="https://st.quantrimang.com/photos/image/2018/11/20/vi-trong-linux-4.jpg" data-was-processed="true" height="452" src="https://st.quantrimang.com/photos/image/2018/11/20/vi-trong-linux-4.jpg" width="422" /></p>

<p style="text-align: justify;">Quay trở lại chế độ Command và gõ&nbsp;<strong>:wq,</strong>&nbsp;sau đó trở về:</p>

<pre id="pre1">
<code>wq</code></pre>

<p style="text-align: justify;">Bây giờ bạn đang ở&nbsp;<a href="https://quantrimang.com/cong-nghe/huong-dan-su-dung-command-prompt-85301" title="Hướng dẫn sử dụng Command Prompt">command prompt</a>. Hãy xem nội dung file của bạn bằng cách sử dụng&nbsp;<strong>cat.</strong></p>

<p style="text-align: justify;"><strong><img alt="Xem nội dung file" data-i="10" data-src="https://st.quantrimang.com/photos/image/2018/11/20/vi-trong-linux-5.jpg" data-was-processed="true" height="500" src="https://st.quantrimang.com/photos/image/2018/11/20/vi-trong-linux-5.jpg" width="468" /></strong></p>

<p style="text-align: justify;">Bạn có thể đang nghĩ rằng Vi rất phức tạp, nhưng thực tế không phải vậy. Vi là một trình soạn thảo khá đơn giản, nhưng nó chỉ có thể làm việc trong một chế độ duy nhất tại một thời điểm mà thôi.</p>

<p style="text-align: justify;">Mở lại file của bạn (<strong>vi file.c</strong>) và viết đoạn code sau:</p>

<pre id="pre2">
<code>void main(void){

printf(“vi is a great tool to write code faster ”);

}</code></pre>

<p style="text-align: justify;">Lưu file của bạn và nếu bạn đã cài đặt gcc, bạn nên biên dịch và chạy nó.</p>

<p style="text-align: justify;"><img alt="Lưu file" data-i="11" data-src="https://st.quantrimang.com/photos/image/2018/11/20/vi-trong-linux-6.jpg" data-was-processed="true" height="500" src="https://st.quantrimang.com/photos/image/2018/11/20/vi-trong-linux-6.jpg" width="467" /></p>

<p style="text-align: justify;"><img alt="Biên dịch và chạy nó" data-i="12" data-src="https://st.quantrimang.com/photos/image/2018/11/20/vi-trong-linux-7.jpg" data-was-processed="true" height="500" src="https://st.quantrimang.com/photos/image/2018/11/20/vi-trong-linux-7.jpg" width="467" /></p>

<div style="text-align: justify;"><iframe allow="autoplay" allowtransparency="true" aria-label="Advertisement" data-google-container-id="a!5" data-google-query-id="CPKXnarZqocDFXiG6QUd9_gGog" data-load-complete="true" frameborder="0" height="0" hspace="0" id="aswift_4" marginheight="0" marginwidth="0" name="aswift_4" sandbox="allow-scripts allow-same-origin allow-forms allow-presentation" scrolling="no" tabindex="0" title="Advertisement" vspace="0" width="478"></iframe></div>

<h2 id="mcetoc_1cso34edl5" style="text-align: justify;">Các tùy chọn thông thường để mở file trong Vi</h2>

<ul>
	<li style="text-align: justify;">vi file: Tạo một file mới nếu nó không tồn tại. Nếu không, nó sẽ mở file hiện có.</li>
	<li style="text-align: justify;">vi -R file: Chế độ chỉ đọc (Read only)</li>
</ul>

<h2 id="mcetoc_1cso34edl6" style="text-align: justify;">Di chuyển giữa các ký tự</h2>

<ul>
	<li style="text-align: justify;">Bạn phải ở chế độ Command.</li>
	<li style="text-align: justify;">Bạn có thể sử dụng các phím: Mũi tên lên, xuống, trái và phải.</li>
</ul>

<p style="text-align: justify;">Ngoài ra, bạn có thể sử dụng các phím khác:</p>

<table border="1">
	<tbody>
		<tr>
			<td style="text-align: justify;">k</td>
			<td style="text-align: justify;">Đưa con trỏ lên trên</td>
		</tr>
		<tr>
			<td style="text-align: justify;">j</td>
			<td style="text-align: justify;">Đưa con trỏ xuống dưới</td>
		</tr>
		<tr>
			<td style="text-align: justify;">h</td>
			<td style="text-align: justify;">Đưa con trỏ sang trái</td>
		</tr>
		<tr>
			<td style="text-align: justify;">l</td>
			<td style="text-align: justify;">Đưa con trỏ sang phải</td>
		</tr>
	</tbody>
</table>

<h2 id="mcetoc_1cso34edl7" style="text-align: justify;">Các lệnh thông thường trong Vi</h2>

<p style="text-align: justify;"><strong>Lưu ý</strong>: Bạn phải ở chế độ Command.</p>

<table border="1">
	<tbody>
		<tr>
			<td style="text-align: justify;"><strong>Lệnh</strong></td>
			<td style="text-align: justify;"><strong>Mô tả</strong></td>
		</tr>
		<tr>
			<td style="text-align: justify;">i</td>
			<td style="text-align: justify;">​Chèn văn bản trước vị trí con trỏ hiện tại.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">l</td>
			<td style="text-align: justify;">Chèn văn bản ở đầu dòng hiện tại.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">a</td>
			<td style="text-align: justify;">Chèn văn bản sau vị trí con trỏ hiện tại.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">A</td>
			<td style="text-align: justify;">Chèn văn bản ở cuối dòng hiện tại.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">o</td>
			<td style="text-align: justify;">Tạo một dòng mới cho mục nhập văn bản bên dưới con trỏ.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">O</td>
			<td style="text-align: justify;">Tạo một dòng mới cho mục nhập văn bản ở trên con trỏ.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">x</td>
			<td style="text-align: justify;">Xóa ký tự bên dưới con trỏ.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">X</td>
			<td style="text-align: justify;">Xóa ký tự trước con trỏ.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">dd</td>
			<td style="text-align: justify;">Xóa dòng con trỏ đang được đặt.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">cc</td>
			<td style="text-align: justify;">Xóa nội dung của dòng, để người dùng ở chế độ Insert.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">r</td>
			<td style="text-align: justify;">Thay thế ký tự bên dưới con trỏ.</td>
		</tr>
	</tbody>
</table>

<h2 id="mcetoc_1cso34edl8" style="text-align: justify;">Lệnh sao chép và dán trong Vi (Thực hành!)</h2>

<p style="text-align: justify;">Tạo một file mới với tên&nbsp;<strong>&quot;linux-distro&quot;.</strong></p>

<p style="text-align: justify;">Viết danh sách sau:</p>

<ul>
	<li style="text-align: justify;">Ubuntu</li>
	<li style="text-align: justify;">Linux Mint</li>
	<li style="text-align: justify;">Debian</li>
	<li style="text-align: justify;">Slackware</li>
	<li style="text-align: justify;">Red Hat</li>
</ul>

<p style="text-align: justify;"><img alt="Tạo file mới" data-i="13" data-src="https://st.quantrimang.com/photos/image/2018/11/20/vi-trong-linux-8.jpg" data-was-processed="true" height="498" src="https://st.quantrimang.com/photos/image/2018/11/20/vi-trong-linux-8.jpg" width="465" /></p>

<p style="text-align: justify;">Thay đổi sang chế độ Command&nbsp;<strong>(ESC).</strong></p>

<p style="text-align: justify;">Di chuyển con trỏ đến&nbsp;<strong>&quot;Ubuntu&quot;.</strong></p>

<p style="text-align: justify;">Gõ&nbsp;<strong>yy</strong>&nbsp;(đây là lệnh để sao chép một dòng).</p>

<p style="text-align: justify;">Gõ G.</p>

<p style="text-align: justify;">Chèn một dòng mới bằng cách gõ&nbsp;<strong>o.</strong></p>

<p style="text-align: justify;">Đổi sang chế độ Command&nbsp;<strong>(ESC).</strong></p>

<p style="text-align: justify;">Gõ&nbsp;<strong>P</strong>&nbsp;(Lệnh này dùng để dán dòng).</p>

<p style="text-align: justify;"><img alt="Gõ P" data-i="14" data-src="https://st.quantrimang.com/photos/image/2018/11/20/vi-trong-linux-9.jpg" data-was-processed="true" height="500" src="https://st.quantrimang.com/photos/image/2018/11/20/vi-trong-linux-9.jpg" width="467" /></p>

<p style="text-align: justify;">Gõ&nbsp;<strong>1G</strong></p>

<p style="text-align: justify;">Gõ&nbsp;<strong>4yy.</strong></p>

<p style="text-align: justify;">Gõ&nbsp;<strong>G.</strong></p>

<p style="text-align: justify;">Gõ&nbsp;<strong>P.</strong></p>

<p style="text-align: justify;"><strong><img alt="Gõ P một lần nữa" data-i="15" data-src="https://st.quantrimang.com/photos/image/2018/11/20/vi-trong-linux-10.jpg" data-was-processed="true" height="500" src="https://st.quantrimang.com/photos/image/2018/11/20/vi-trong-linux-10.jpg" width="468" /></strong></p>

<p style="text-align: justify;">Ngoài ra, bạn có thể sử dụng lệnh copy - paste khác:</p>

<ul>
	<li style="text-align: justify;"><strong>yw:</strong>&nbsp;Sao chép từ hiện tại.</li>
	<li style="text-align: justify;"><strong>p</strong>: Đặt văn bản đã sao chép sau con trỏ.</li>
</ul>

<h2 id="mcetoc_1cso34edl9" style="text-align: justify;">Lệnh Vi nâng cao</h2>

<table border="1">
	<tbody>
		<tr>
			<td style="text-align: justify;">&lt;&lt;</td>
			<td style="text-align: justify;">Tham gia vào dòng hiện tại và dòng tiếp theo. Một số tham gia vào nhiều dòng.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">&gt;&gt;</td>
			<td style="text-align: justify;">Căn dòng hiện tại sang bên trái với một chiều rộng có thể thay đổi.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">:nr file</td>
			<td style="text-align: justify;">Đọc file và chèn nó sau dòng n.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">~</td>
			<td style="text-align: justify;">Chuyển đổi kiểu viết hoa/viết thường của ký tự bên dưới con trỏ.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">^G</td>
			<td style="text-align: justify;">Nhấn các phím CTRL và G cùng một lúc để hiển thị tên file và trạng thái hiện tại.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">U</td>
			<td style="text-align: justify;">Khôi phục dòng hiện tại về trạng thái trước khi con trỏ nhập vào dòng.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">u</td>
			<td style="text-align: justify;">Hoàn tác thay đổi cuối cùng đối với tệp. Nhập lại&nbsp;<strong>&quot;u&quot;</strong>&nbsp;một lần nữa sẽ thực hiện lại thay đổi.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">J</td>
			<td style="text-align: justify;">Tham gia vào dòng hiện tại và dòng tiếp theo. Một số tham gia vào nhiều dòng.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">:f</td>
			<td style="text-align: justify;">Hiển thị vị trí hiện tại trong tệp bằng % và tên file, tổng số file.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">:f filename</td>
			<td style="text-align: justify;">Đổi tên file hiện tại thành filename.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">:w filename</td>
			<td style="text-align: justify;">Viết vào filename của file.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">:e filename</td>
			<td style="text-align: justify;">Mở một file khác với filename.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">:cd dirname</td>
			<td style="text-align: justify;">Thay đổi thư mục làm việc hiện tại thành dirname.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">:e #</td>
			<td style="text-align: justify;">​Sử dụng để chuyển đổi giữa 2 file đã mở.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">:n</td>
			<td style="text-align: justify;">Trong trường hợp bạn mở nhiều file bằng Vi, hãy sử dụng :n để chuyển đến file tiếp theo trong chuỗi.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">:N</td>
			<td style="text-align: justify;">Trong trường hợp bạn mở nhiều file bằng vi, hãy sử dụng :N để chuyển đến file trước đó trong chuỗi.</td>
		</tr>
		<tr>
			<td style="text-align: justify;">:r file</td>
			<td style="text-align: justify;">​Đọc file và chèn nó sau dòng hiện tại</td>
		</tr>
	</tbody>
</table>

<h2 id="mcetoc_1cso34edla" style="text-align: justify;">Làm việc với hai hoặc nhiều file (Thực hành!)</h2>

<p style="text-align: justify;">Mở file&nbsp;<strong>linux-distros</strong></p>

<p style="text-align: justify;">Trong chế độ Command, hãy gõ:</p>

<pre id="pre3">
<code>:e unix</code></pre>

<p style="text-align: justify;">Viết &quot;<strong>UNIX is a good OS</strong>&quot; và lưu nó.</p>

<p style="text-align: justify;">Đi tới file linux-distros bằng lệnh:</p>

<pre id="pre4">
<code>:e #</code></pre>

<p style="text-align: justify;">Thoát khỏi Vi bằng cách gõ:</p>

<pre id="pre5">
<code>:q</code></pre>

<p style="text-align: justify;">Chúc các bạn thành công!</p>
		</div>
				<div id="author">
						<p>
				<strong>Nguồn tin:</strong>
				Quantrimang.com:
			</p>
		</div>
	</div>
	<div id="footer" class="clearfix">
		<div id="url">
			<strong>URL của bản tin này: </strong><a href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/tim-hieu-ve-ung-dung-vi-trong-linux-8673.html" title="Tìm hiểu về ứng dụng Vi trong Linux">https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/tim-hieu-ve-ung-dung-vi-trong-linux-8673.html</a>

		</div>
		<div class="clear"></div>
		<div class="copyright">
			&copy; .&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.
		</div>
		<div id="contact">
			<a href="mailto:admin@nguoicodonvn2008.info">admin@nguoicodonvn2008.info</a>
		</div>
	</div>
</div>
        <div id="timeoutsess" class="chromeframe">
            Bạn đã không sử dụng Site, <a onclick="timeoutsesscancel();" href="https://www.nguoicodonvn2008.info/#">Bấm vào đây để duy trì trạng thái đăng nhập</a>. Thời gian chờ: <span id="secField"> 60 </span> giây
        </div>
        <div id="openidResult" class="nv-alert" style="display:none"></div>
        <div id="openidBt" data-result="" data-redirect=""></div>
		</script>
		<div class="car-top">
  <span><img src="https://www.nguoicodonvn2008.info/themes/default/images/car.png" alt=""></span>
</div>
<div id="run_cronjobs" style="visibility:hidden;display:none;"><img alt="cron" src="/index.php?second=cronjobs&amp;p=u2l84h2Z" width="1" height="1" /></div>
<script src="https://www.nguoicodonvn2008.info/assets/js/jquery/jquery.min.js"></script>
<script>var nv_base_siteurl="/",nv_lang_data="vi",nv_lang_interface="vi",nv_name_variable="nv",nv_fc_variable="op",nv_lang_variable="language",nv_module_name="news",nv_func_name="savefile",nv_is_user=0, nv_my_ofs=-4,nv_my_abbr="EDT",nv_cookie_prefix="nv4c_e856T",nv_check_pass_mstime=1738000,nv_area_admin=0,nv_safemode=0,theme_responsive=0,nv_recaptcha_ver=2,nv_recaptcha_sitekey="",nv_recaptcha_type="image",XSSsanitize=1;</script>
<script src="https://www.nguoicodonvn2008.info/assets/js/language/vi.js"></script>
<script src="https://www.nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js"></script>
<script src="https://www.nguoicodonvn2008.info/assets/js/global.js"></script>
<script src="https://www.nguoicodonvn2008.info/assets/js/site.js"></script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/news.js"></script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/main.js"></script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/custom.js"></script>
<script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@type": "Organization",
            "url": "https://www.nguoicodonvn2008.info",
            "logo": "https://www.nguoicodonvn2008.info/uploads/angel.gif"
        }
        </script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/bootstrap.min.js"></script>
<script type="text/javascript">
var $scrolltop = $('.car-top');
$scrolltop.on('click', function () {
    $('html,body').animate({
        scrollTop: 0
    }, 800);
    $(this).addClass("car-run");
    setTimeout(function(){ $scrolltop.removeClass('car-run');}, 1000);
    return false;
});
$(window).on('scroll', function ()
{ 
    if($(window).scrollTop() >= 200)
    {
        $scrolltop.addClass("show");
        $scrolltop.addClass("car-down");
    }
    else
    {
       $scrolltop.removeClass("show");
       setTimeout(function(){ $scrolltop.removeClass('car-down');}, 300);
    }
});
</script>
</body>
</html>