最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

Ubuntu下vim操作指南

业界 admin 10浏览 0评论

声明

本博客所记录的关于正点原子i.MX6ULL开发板的学习笔记,(内容参照正点原子I.MX6U嵌入式linux驱动开发指南,可在正点原子官方获取正点原子Linux开发板 — 正点原子资料下载中心 1.0.0 文档,旨在如实记录我在学校学习该开发板过程中所遭遇的各类问题以及详细的解决办法。其初衷纯粹是为了个人知识梳理、学习总结以及日后回顾查阅方便,同时也期望能为同样在学习这款开发板的同学或爱好者提供一些解决问题的思路和参考。

内容来源:笔记中的所有问题及解决方法均来自于我在实际操作开发板、研读相关资料(包括但不限于正点原子官方教程、技术文档、论坛交流,AI等)以及与老师和同学探讨过程中的真实经历。我尽力保证内容的准确性和可靠性,但由于个人知识水平和实践经验有限,若存在错误或不严谨之处,恳请各位读者批评指正。

责任声明:虽然我力求提供有效的问题解决办法,但由于开发板使用环境、硬件差异、软件版本等多种因素的影响,我的笔记内容不一定适用于所有情况。对于因参考本笔记而导致的任何直接或间接损失,我不承担任何法律责任。使用本笔记内容的读者应自行承担相关风险,并在必要时寻求专业技术支持。

Ubuntu自带了 VI 编辑器,但是 VI 编辑器对于习惯了 Windows 下进行开发的人来说不方便,比如竟然不能使用键盘上的上下左右键调整光标位置。因此我推荐大家使用 VIM 编辑器, VIM 编辑器是 VI 编辑器升级版本, VI/VIM 编辑器都是一种基于指令式的编辑器,不需要鼠标,也没有菜单,仅仅使用键盘来完成所有的编辑工作。

我们需要先安装 VIM 编辑器,命令如下:

Sudo apt-get install vim

VIM 编辑器有 3 种工作模式:输入模式、指令模式和底行模式,通过切换不同的模式可以完成不同的功能.VIM默认是以只读模式打开的文档,因此我们要切换到输入模式,切换到输入模式的命令如下:

i 在当前光标所在字符的前面,转为输入模式。

I 在当前光标所在行的行首转换为输入模式。

a 在当前光标所在字符的后面,转为输入模式。

A 在光标所在行的行尾,转换为输入模式。

o 在当前光标所在行的下方,新建一行,并转为输入模式。

O 在当前光标所在行的上方,新建一行,并转为输入模式。

s 删除光标所在字符。
r 替换光标处字符。
按下键盘上的“a”键,这时候终端左下角会提示“插入”字样,表示我们进入到了输入模式

我们可以正常输入文本了

对于保存,我们需要从 VIM 现在的输入模式切换到指令模式,方式就是按下键盘的 ESC 键,按下 ESC 键以后终端坐下角的“插入”字样就会消失,此时就不能在输入任何文本了,如果想再次输入文本的话就按下“a”键重新进入到输入模式。指令模式顾名思义就是输入指令的模式,这些指令是控制文本的指令,我们将这些指令进行分类,如下所示:

1  移动光标指令

h/← 光标左移一个字符

l/→ 光标右移一个字符

j/↓ 光标下移一行

k/↑ 光标上移一行

nG  移动到第n行首

n+  光标下移n行

n-  光标上移n行

2. 屏幕翻滚指令

Ctrl+f 下一页

Ctrl+b 上一页

3. 复制删除和粘贴指令

cc  删除整行,并且修改整行内容

dd  删除整行,不提供修改功能

ndd  删除当前行向下n行

x  删除光标所在字符

X  删除光标前面的一个字符

nyy  复制当前行及其下面n行

p  粘贴最近复制的内容

要先进入到指令模式,进入底行模式的方式是先进入指令模式下,然后在指令模式下输入“:”进入底行模式

当进入底行模式以后会在终端的左下角就会出现符号“:”,我们可以在“:”后面输入命令,常用的命令如下:

x 保存当前文档并且退出

q 退出

w 保存文档

q! 退出VI/VIM,不保存文档

如果要退出并保存文本的话需要在“:”底行模式下输入“wq”

在“:”底行模式下输入“wq”以后按下回车键就保存 test.txt 并退出 VI/VIM 编辑器,退出以后我们可以使用命令“cat”来查看刚刚新建的 test.txt 文档的内容

还可以在指令模式下输入“/”进入底行模式,输入“/”, 在“/”底行模式下我们可以在文本中搜索指定的内容,搜索 test.txt 文件中“666”, 在“/”后面输入要搜索的内容,然后按下回车键就会在 test.txt 中找到

在 Ubuntu 系统下优化 Vim 编辑器的常用配置方法,分为基础设置和进阶功能。建议将这些配置添加到~/.vimrc文件中(如果没有则新建)

对于vim的一些配置分享:

1.安装 vim-plug

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \

    https://raw.githubusercontent/junegunn/vim-plug/master/plug.vim

2.~/.vimrc中添加插件

call plug#begin('~/.vim/plugged')

" 文件树插件

Plug 'preservim/nerdtree'

" 状态栏美化

Plug 'vim-airline/vim-airline'

" 快速搜索文件

Plug 'ctrlpvim/ctrlp.vim'

" 自动补全括号

Plug 'jiangmiao/auto-pairs'

call plug#end()

3.安装插件:

打开 Vim,执行:PlugInstall

4.更改~.vimrc文件,代码如下:

" ==== 基础设置 ====

set nocompatible            " 禁用 Vi 兼容模式

filetype plugin indent on   " 启用文件类型检测和自动缩进

syntax on                   " 语法高亮

" ==== 界面优化 ====

set number                  " 显示行号 (兼容你的 set nu)

set relativenumber          " 显示相对行号(方便跳转)

set cursorline              " 高亮当前行

set scrolloff=5             " 滚动时保留上下5行

set showcmd                 " 显示输入的命令

set wildmenu                " 命令行自动补全

set title                   " 窗口标题显示文件名

" ==== 缩进和空格 ====

set expandtab               " Tab 转换为空格 (兼容你的 set et)

set tabstop=4               " Tab 显示为4空格 (兼容你的 set ts=4)

set shiftwidth=4            " 自动缩进步长

set softtabstop=4           " 退格键删除缩进

set autoindent              " 自动缩进

set smartindent             " 智能缩进(如代码块)

" ==== 搜索和替换 ====

set hlsearch                " 高亮搜索结果 (你的配置)

set incsearch               " 输入时实时搜索 (你的配置)

set ignorecase              " 搜索忽略大小写 (你的配置)

set smartcase               " 如果搜索包含大写,则区分大小写

" ==== 文件和编码 ====

set encoding=utf-8          " 默认编码

set fileencodings=utf-8,gbk " 自动识别文件编码

set hidden                  " 允许切换未保存的缓冲区

set autoread                " 文件被外部修改时自动重新加载

" ==== 粘贴和不可见字符 ====

set paste                   " 启用粘贴模式 (你的配置)

set pastetoggle=<F2>        " 用 F2 切换粘贴模式(防止与自动缩进冲突)

set list                    " 显示不可见字符 (你的配置)

set listchars=tab:>-,trail:· " 定义 Tab 和行尾空格显示样式

" ==== 状态栏和换行 ====

set laststatus=2            " 始终显示状态栏 (你的配置)

set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ [LEN=%L]  " 你的状态栏格式

set linebreak               " 按单词边界自动换行 (你的配置)

set wrap                    " 启用换行 (你的配置)

" ==== 鼠标支持 ====

set mouse=a                 " 启用鼠标 (你的配置)

" ==== 快捷键映射 ====

let mapleader = ","         " 定义 Leader 键为逗号

" 快速保存和退出

nnoremap <Leader>w :w<CR>

nnoremap <Leader>q :q<CR>

nnoremap <Leader>x :x<CR>

" 全选文本 (Ctrl+A)

nnoremap <C-a> ggVG

vnoremap <C-a> <Esc>ggVG

" 清除搜索高亮

nnoremap <Leader>/ :nohlsearch<CR>

" ==== 插件管理 (vim-plug) ====

call plug#begin('~/.vim/plugged')

" 文件树

Plug 'preservim/nerdtree'

" 状态栏美化

Plug 'vim-airline/vim-airline'

" 自动补全括号

Plug 'jiangmiao/auto-pairs'

" 快速搜索文件

Plug 'ctrlpvim/ctrlp.vim'

" 主题配色

Plug 'morhetz/gruvbox'

call plug#end()

" ==== 插件配置 ====

" NERDTree 文件树

map <C-n> :NERDTreeToggle<CR>

let NERDTreeShowHidden=1    " 显示隐藏文件

" Airline 状态栏

let g:airline_powerline_fonts = 1

let g:airline_theme = 'gruvbox'

" Gruvbox 主题

set background=dark

colorscheme gruvbox

" ==== 自定义脚本(你的自动添加 .sh 文件头) ====

autocmd BufNewFile *.sh exec ":call SetTitle()"

func SetTitle()

    if expand("%:e") == 'sh'

        call setline(1, "#!/bin/bash")

        call setline(2, "#")

        call setline(3, "#******************************************************")

        call setline(4, "#Author:                      mayachao")

        call setline(5, "#QQ:                          1173103489")

        call setline(6, "#Date:                        " . strftime("%Y-%m-%d"))

        call setline(7, "#FileName:                    " . expand("%"))

    endif

endfunc

" ==== 其他优化 ====

autocmd BufWritePre * :%s/\s\+$//e  " 保存时自动删除行尾空格

打开界面如下:

声明

本博客所记录的关于正点原子i.MX6ULL开发板的学习笔记,(内容参照正点原子I.MX6U嵌入式linux驱动开发指南,可在正点原子官方获取正点原子Linux开发板 — 正点原子资料下载中心 1.0.0 文档,旨在如实记录我在学校学习该开发板过程中所遭遇的各类问题以及详细的解决办法。其初衷纯粹是为了个人知识梳理、学习总结以及日后回顾查阅方便,同时也期望能为同样在学习这款开发板的同学或爱好者提供一些解决问题的思路和参考。

内容来源:笔记中的所有问题及解决方法均来自于我在实际操作开发板、研读相关资料(包括但不限于正点原子官方教程、技术文档、论坛交流,AI等)以及与老师和同学探讨过程中的真实经历。我尽力保证内容的准确性和可靠性,但由于个人知识水平和实践经验有限,若存在错误或不严谨之处,恳请各位读者批评指正。

责任声明:虽然我力求提供有效的问题解决办法,但由于开发板使用环境、硬件差异、软件版本等多种因素的影响,我的笔记内容不一定适用于所有情况。对于因参考本笔记而导致的任何直接或间接损失,我不承担任何法律责任。使用本笔记内容的读者应自行承担相关风险,并在必要时寻求专业技术支持。

Ubuntu自带了 VI 编辑器,但是 VI 编辑器对于习惯了 Windows 下进行开发的人来说不方便,比如竟然不能使用键盘上的上下左右键调整光标位置。因此我推荐大家使用 VIM 编辑器, VIM 编辑器是 VI 编辑器升级版本, VI/VIM 编辑器都是一种基于指令式的编辑器,不需要鼠标,也没有菜单,仅仅使用键盘来完成所有的编辑工作。

我们需要先安装 VIM 编辑器,命令如下:

Sudo apt-get install vim

VIM 编辑器有 3 种工作模式:输入模式、指令模式和底行模式,通过切换不同的模式可以完成不同的功能.VIM默认是以只读模式打开的文档,因此我们要切换到输入模式,切换到输入模式的命令如下:

i 在当前光标所在字符的前面,转为输入模式。

I 在当前光标所在行的行首转换为输入模式。

a 在当前光标所在字符的后面,转为输入模式。

A 在光标所在行的行尾,转换为输入模式。

o 在当前光标所在行的下方,新建一行,并转为输入模式。

O 在当前光标所在行的上方,新建一行,并转为输入模式。

s 删除光标所在字符。
r 替换光标处字符。
按下键盘上的“a”键,这时候终端左下角会提示“插入”字样,表示我们进入到了输入模式

我们可以正常输入文本了

对于保存,我们需要从 VIM 现在的输入模式切换到指令模式,方式就是按下键盘的 ESC 键,按下 ESC 键以后终端坐下角的“插入”字样就会消失,此时就不能在输入任何文本了,如果想再次输入文本的话就按下“a”键重新进入到输入模式。指令模式顾名思义就是输入指令的模式,这些指令是控制文本的指令,我们将这些指令进行分类,如下所示:

1  移动光标指令

h/← 光标左移一个字符

l/→ 光标右移一个字符

j/↓ 光标下移一行

k/↑ 光标上移一行

nG  移动到第n行首

n+  光标下移n行

n-  光标上移n行

2. 屏幕翻滚指令

Ctrl+f 下一页

Ctrl+b 上一页

3. 复制删除和粘贴指令

cc  删除整行,并且修改整行内容

dd  删除整行,不提供修改功能

ndd  删除当前行向下n行

x  删除光标所在字符

X  删除光标前面的一个字符

nyy  复制当前行及其下面n行

p  粘贴最近复制的内容

要先进入到指令模式,进入底行模式的方式是先进入指令模式下,然后在指令模式下输入“:”进入底行模式

当进入底行模式以后会在终端的左下角就会出现符号“:”,我们可以在“:”后面输入命令,常用的命令如下:

x 保存当前文档并且退出

q 退出

w 保存文档

q! 退出VI/VIM,不保存文档

如果要退出并保存文本的话需要在“:”底行模式下输入“wq”

在“:”底行模式下输入“wq”以后按下回车键就保存 test.txt 并退出 VI/VIM 编辑器,退出以后我们可以使用命令“cat”来查看刚刚新建的 test.txt 文档的内容

还可以在指令模式下输入“/”进入底行模式,输入“/”, 在“/”底行模式下我们可以在文本中搜索指定的内容,搜索 test.txt 文件中“666”, 在“/”后面输入要搜索的内容,然后按下回车键就会在 test.txt 中找到

在 Ubuntu 系统下优化 Vim 编辑器的常用配置方法,分为基础设置和进阶功能。建议将这些配置添加到~/.vimrc文件中(如果没有则新建)

对于vim的一些配置分享:

1.安装 vim-plug

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \

    https://raw.githubusercontent/junegunn/vim-plug/master/plug.vim

2.~/.vimrc中添加插件

call plug#begin('~/.vim/plugged')

" 文件树插件

Plug 'preservim/nerdtree'

" 状态栏美化

Plug 'vim-airline/vim-airline'

" 快速搜索文件

Plug 'ctrlpvim/ctrlp.vim'

" 自动补全括号

Plug 'jiangmiao/auto-pairs'

call plug#end()

3.安装插件:

打开 Vim,执行:PlugInstall

4.更改~.vimrc文件,代码如下:

" ==== 基础设置 ====

set nocompatible            " 禁用 Vi 兼容模式

filetype plugin indent on   " 启用文件类型检测和自动缩进

syntax on                   " 语法高亮

" ==== 界面优化 ====

set number                  " 显示行号 (兼容你的 set nu)

set relativenumber          " 显示相对行号(方便跳转)

set cursorline              " 高亮当前行

set scrolloff=5             " 滚动时保留上下5行

set showcmd                 " 显示输入的命令

set wildmenu                " 命令行自动补全

set title                   " 窗口标题显示文件名

" ==== 缩进和空格 ====

set expandtab               " Tab 转换为空格 (兼容你的 set et)

set tabstop=4               " Tab 显示为4空格 (兼容你的 set ts=4)

set shiftwidth=4            " 自动缩进步长

set softtabstop=4           " 退格键删除缩进

set autoindent              " 自动缩进

set smartindent             " 智能缩进(如代码块)

" ==== 搜索和替换 ====

set hlsearch                " 高亮搜索结果 (你的配置)

set incsearch               " 输入时实时搜索 (你的配置)

set ignorecase              " 搜索忽略大小写 (你的配置)

set smartcase               " 如果搜索包含大写,则区分大小写

" ==== 文件和编码 ====

set encoding=utf-8          " 默认编码

set fileencodings=utf-8,gbk " 自动识别文件编码

set hidden                  " 允许切换未保存的缓冲区

set autoread                " 文件被外部修改时自动重新加载

" ==== 粘贴和不可见字符 ====

set paste                   " 启用粘贴模式 (你的配置)

set pastetoggle=<F2>        " 用 F2 切换粘贴模式(防止与自动缩进冲突)

set list                    " 显示不可见字符 (你的配置)

set listchars=tab:>-,trail:· " 定义 Tab 和行尾空格显示样式

" ==== 状态栏和换行 ====

set laststatus=2            " 始终显示状态栏 (你的配置)

set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ [LEN=%L]  " 你的状态栏格式

set linebreak               " 按单词边界自动换行 (你的配置)

set wrap                    " 启用换行 (你的配置)

" ==== 鼠标支持 ====

set mouse=a                 " 启用鼠标 (你的配置)

" ==== 快捷键映射 ====

let mapleader = ","         " 定义 Leader 键为逗号

" 快速保存和退出

nnoremap <Leader>w :w<CR>

nnoremap <Leader>q :q<CR>

nnoremap <Leader>x :x<CR>

" 全选文本 (Ctrl+A)

nnoremap <C-a> ggVG

vnoremap <C-a> <Esc>ggVG

" 清除搜索高亮

nnoremap <Leader>/ :nohlsearch<CR>

" ==== 插件管理 (vim-plug) ====

call plug#begin('~/.vim/plugged')

" 文件树

Plug 'preservim/nerdtree'

" 状态栏美化

Plug 'vim-airline/vim-airline'

" 自动补全括号

Plug 'jiangmiao/auto-pairs'

" 快速搜索文件

Plug 'ctrlpvim/ctrlp.vim'

" 主题配色

Plug 'morhetz/gruvbox'

call plug#end()

" ==== 插件配置 ====

" NERDTree 文件树

map <C-n> :NERDTreeToggle<CR>

let NERDTreeShowHidden=1    " 显示隐藏文件

" Airline 状态栏

let g:airline_powerline_fonts = 1

let g:airline_theme = 'gruvbox'

" Gruvbox 主题

set background=dark

colorscheme gruvbox

" ==== 自定义脚本(你的自动添加 .sh 文件头) ====

autocmd BufNewFile *.sh exec ":call SetTitle()"

func SetTitle()

    if expand("%:e") == 'sh'

        call setline(1, "#!/bin/bash")

        call setline(2, "#")

        call setline(3, "#******************************************************")

        call setline(4, "#Author:                      mayachao")

        call setline(5, "#QQ:                          1173103489")

        call setline(6, "#Date:                        " . strftime("%Y-%m-%d"))

        call setline(7, "#FileName:                    " . expand("%"))

    endif

endfunc

" ==== 其他优化 ====

autocmd BufWritePre * :%s/\s\+$//e  " 保存时自动删除行尾空格

打开界面如下:

发布评论

评论列表 (0)

  1. 暂无评论