精华内容
下载资源
问答
  • ubuntu20.04安装vim
    2021-12-07 22:48:20

    1.检查依赖是否满足要求,可以参考VIM的github:GitHub - ycm-core/YouCompleteMe: A code-completion engine for Vim

    也可以参考博客:在ubuntu下使用vim-plug安装插件YouCompleteMe_superhoner的博客-CSDN博客_ubuntu安装plug

    2.安装vim,安装vim-plug,配置.vimrc

    在vim中运行:pluginstall,即可安装YCM

    3.进入源码文件夹,比如:~/.vim/plugged/YouCompleteMe

    然后运行  git submodule update --init --recursive 补全可能不全的源码

    之后运行 git submodule update --init --recursive 即可编译源码,至此YCM就可用了

    更多相关内容
  • Ubuntu20.04安装vim出现的相关问题及解决方法
  • ubuntu 20.04.1 离线vim资源包
  • Ubuntu 20.04 配置vim编辑器

    千次阅读 2022-05-10 14:23:29
    vim安装 命令: sudo apt-get install vim-gtk -y 正常完成状态: 配置vim vim的配置文件路径:/etc/vim/vimrc 我的配置文件如下,如果你需要,可以把红色部分改成你自己的一些信息,就是一个很好用的vim了。 ...

    vim的安装

    命令:

    sudo apt-get install vim-gtk -y
    

    正常完成状态:
    在这里插入图片描述

    配置vim

    vim的配置文件路径:/etc/vim/vimrc
    我的配置文件如下,如果你需要,可以把红色部分改成你自己的一些信息,就是一个很好用的vim了。
    具体操作:(这些命令都在终端执行,快捷键打开:ctl+alt+t)

    // 把原本的文件备份
    sudo cp /etc/vim/vimrc /etc/vim/vimrc.back
    //删除vimrc
    sudo rm /etc/vim/vimrc
    // 新建文件vimrc
    sudo vi /etc/vim/vimrc
    // 进入文件后按“a",表示插入,接下来把下面的内容复制到这个文件中,按”esc“,表示退出,再输入”wq“+”回车“就保存退出了。
    

    下面是我的vimrc文件,功能基本完善,你可以直接完全复制到你的vimrc文件中。
    如果你想定制你专属的vim编辑器,把文件内容中的Author字段改成你的昵称,Mail字段后面改成你的邮箱号,这样你就拥有你的专属vim编辑器了。
    Author: username
    Mail: 111111111@qq.com

    我的vimrc文件:

    set sw=4
    set ts=4
    set et
    set smarttab
    set smartindent
    set lbr
    set fo+=mB
    set sm
    set selection=inclusive
    set wildmenu
    set mousemodel=popup
    
    set pastetoggle=<F11>
    
    au FileType php setlocal dict+=~/.vim/dict/php_funclist.dict
    au FileType css setlocal dict+=~/.vim/dict/css.dict
    au FileType c setlocal dict+=~/.vim/dict/c.dict
    au FileType cpp setlocal dict+=~/.vim/dict/cpp.dict
    au FileType scale setlocal dict+=~/.vim/dict/scale.dict
    au FileType javascript setlocal dict+=~/.vim/dict/javascript.dict
    au FileType html setlocal dict+=~/.vim/dict/javascript.dict
    au FileType html setlocal dict+=~/.vim/dict/css.dict
    
    "
    "syntastic相关
    "execute pathogen#infect()
    let g:syntastic_python_checkers=['pylint']
    let g:syntastic_php_checkers=['php', 'phpcs', 'phpmd']
    "golang
    "Processing... % (ctrl+c to stop)
    let g:fencview_autodetect=0
    set rtp+=$GOROOT/misc/vim
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " 显示相关  
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    syntax on
    set cul "高亮光标所在行
    set cuc
    set shortmess=atI   " 启动的时候不显示那个援助乌干达儿童的提示  
    set go=             " 不要图形按钮  
    "color desert     " 设置背景主题  
    color ron     " 设置背景主题  
    "color torte     " 设置背景主题  
    "set guifont=Courier_New:h10:cANSI   " 设置字体  
    "autocmd InsertLeave * se nocul  " 用浅色高亮当前行  
    autocmd InsertEnter * se cul    " 用浅色高亮当前行  
    set ruler           " 显示标尺  
    set showcmd         " 输入的命令显示出来,看的清楚些  
    "set whichwrap+=<,>,h,l   " 允许backspace和光标键跨越行边界(不建议)  
    set scrolloff=3     " 光标移动到buffer的顶部和底部时保持3行距离  
    set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}   "状态行显示的内容  
    set laststatus=2    " 启动显示状态行(1),总是显示状态行(2)  
    "set foldenable      " 允许折叠  
    ""set foldmethod=manual   " 手动折叠  
    set nocompatible  "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限  
    " 显示中文帮助
    if version >= 603
            set helplang=cn
            set encoding=utf-8
    endif
    " 自动缩进
    set autoindent
    set cindent
    " Tab键的宽度
    set tabstop=4
    " 统一缩进为4
    set softtabstop=4
    set shiftwidth=4
    " 使用空格代替制表符
    set expandtab
    " 在行和段开始处使用制表符
    set smarttab
    " 显示行号
    set number
    " 历史记录数
    set history=1000
    "搜索逐字符高亮
    set hlsearch
    set incsearch
    "语言设置
    set langmenu=zh_CN.UTF-8
    set helplang=cn
    " 总是显示状态行
    set cmdheight=2
    " 侦测文件类型
    filetype on
    " 载入文件类型插件
    filetype plugin on
    " 为特定文件类型载入相关缩进文件
    filetype indent on
    " 保存全局变量
    set viminfo+=!
    " 带有如下符号的单词不要被换行分割
    set iskeyword+=_,$,@,%,#,-
    " 字符间插入的像素行数目
    
    "markdown配置
    au BufRead,BufNewFile *.{md,mdown,mkd,mkdn,markdown,mdwn}   set filetype=mkd
    au BufRead,BufNewFile *.{go}   set filetype=go
    au BufRead,BufNewFile *.{js}   set filetype=javascript
    "rkdown to HTML  
    nmap md :!~/.vim/markdown.pl % > %.html <CR><CR>
    nmap fi :!firefox %.html & <CR><CR>
    nmap \ \cc
    vmap \ \cc
    
    "将tab替换为空格
    nmap tt :%s/\t/    /g<CR>
    
    
    
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    """""新文件标题
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "新建.c,.h,.sh,.java文件,自动插入文件头 
    autocmd BufNewFile *.cpp,*.[ch],*.sh,*.rb,*.java,*.py exec ":call SetTitle()" 
    ""定义函数SetTitle,自动插入文件头 
    func SetTitle() 
            "如果文件类型为.sh文件 
            if &filetype == 'sh' 
                    call setline(1,"\#!/bin/bash") 
                    call append(line("."), "") 
        elseif &filetype == 'python'
            call setline(1,"#!/usr/bin/env python")
            call append(line("."),"# coding=utf-8")
                call append(line(".")+1, "") 
    
        elseif &filetype == 'ruby'
            call setline(1,"#!/usr/bin/env ruby")
            call append(line("."),"# encoding: utf-8")
                call append(line(".")+1, "")
    
    "    elseif &filetype == 'mkd'
    "        call setline(1,"<head><meta charset=\"UTF-8\"></head>")
            else 
                    call setline(1, "/*************************************************************************") 
                    call append(line("."), "        > File Name: ".expand("%")) 
                    call append(line(".")+1, "        > Author: username") 
                    call append(line(".")+2, "        > Mail: 111111111@qq.com") 
                    call append(line(".")+3, "        > Created Time: ".strftime("%c")) 
                    call append(line(".")+4, " ************************************************************************/") 
                    call append(line(".")+5, "")
            endif
            if expand("%:e") == 'cpp'
                    call append(line(".")+6, "#include <iostream>")
            call append(line(".")+7, "using std::cin;")
            call append(line(".")+8, "using std::cout;")
            call append(line(".")+9, "using std::endl;")
                    call append(line(".")+10, "using namespace std;")
                    call append(line(".")+11, "")
            endif
            if &filetype == 'c'
                    call append(line(".")+6, "#include <stdio.h>")
                    call append(line(".")+7, "")
            endif
            if expand("%:e") == 'h'
                    call append(line(".")+6, "#ifndef _".toupper(expand("%:r"))."_H")
                    call append(line(".")+7, "#define _".toupper(expand("%:r"))."_H")
                    call append(line(".")+8, "#endif")
            endif
            if &filetype == 'java'
                    call append(line(".")+6,"public class ".expand("%:r"))
                    call append(line(".")+7,"")
            endif
            "新建文件后,自动定位到文件末尾
    endfunc 
    autocmd BufNewFile * normal G
    command WQ wq 
    command Wq wq 
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "键盘命令
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    :nmap <silent> <F9> <ESC>:Tlist<RETURN>
    " shift tab pages
    map <S-Left> :tabp<CR>
    map <S-Right> :tabn<CR>
    map! <C-Z> <Esc>zzi
    map! <C-O> <C-Y>,
    map <C-A> ggVG$"+y
    map <Esc><Esc> :w<CR>
    map <F12> gg=G
    map <C-w> <C-w>w
    imap <C-k> <C-y>,
    imap <C-t> <C-q><TAB>
    imap <C-j> <ESC>
    " 选中状态下 Ctrl+c 复制
    "map <C-v> "*pa
    imap <C-v> <Esc>"*pa
    imap <C-a> <Esc>^
    imap <C-e> <Esc>$
    vmap <C-c> "+y
    "set mouse=v
    "set clipboard=unnamed
    "去注释  
    nnoremap <F1> :g/^\s*#/d<CR>
    "去空行  
    nnoremap <F2> :g/^\s*$/d<CR>
    "比较文件  
    nnoremap <C-F2> :vert diffsplit 
    "nnoremap <Leader>fu :CtrlPFunky<Cr>
    "nnoremap <C-n> :CtrlPFunky<Cr>
    "列出当前目录文件  
    map <F3> :NERDTreeToggle<CR>
    imap <F3> <ESC> :NERDTreeToggle<CR>
    "打开树状文件目录  
    map <C-F3> \be  
    :autocmd BufRead,BufNewFile *.dot map <F5> :w<CR>:!dot -Tjpg -o %<.jpg % && eog %<.jpg  <CR><CR> && exec "redr!"
    "C,C++ 按F5编译运行
    map <F5> :call CompileRunGcc()<CR>
    func! CompileRunGcc()
            exec "w"
            if &filetype == 'c'
                    exec "!g++ % -o %<"
                    exec "!time ./%<"
            elseif &filetype == 'cpp'
                    exec "!g++ % -std=c++11 -o %<"
                    exec "!time ./%<"
            elseif &filetype == 'java' 
                    exec "!javac %" 
                    exec "!time java %<"
            elseif &filetype == 'sh'
                    :!time bash %
            elseif &filetype == 'python'
                    exec "!time python2.7 %"
        elseif &filetype == 'html'
            exec "!firefox % &"
        elseif &filetype == 'go'
    "        exec "!go build %<"
            exec "!time go run %"
        elseif &filetype == 'mkd'
            exec "!~/.vim/markdown.pl % > %.html &"
            exec "!firefox %.html &"
            endif
    endfunc
    "C,C++的调试
    map <F8> :call Rungdb()<CR>
    func! Rungdb()
            exec "w"
            exec "!g++ % -std=c++11 -g -o %<"
            exec "!gdb ./%<"
    endfunc
    
    
    "代码格式优化化
    
    map <F6> :call FormartSrc()<CR><CR>
    
    "定义FormartSrc()
    func FormartSrc()
        exec "w"
        if &filetype == 'c'
            exec "!astyle --style=ansi -a --suffix=none %"
        elseif &filetype == 'cpp' || &filetype == 'hpp'
            exec "r !astyle --style=ansi --one-line=keep-statements -a --suffix=none %> /dev/null 2>&1"
        elseif &filetype == 'perl'
            exec "!astyle --style=gnu --suffix=none %"
        elseif &filetype == 'py'||&filetype == 'python'
            exec "r !autopep8 -i --aggressive %"
        elseif &filetype == 'java'
            exec "!astyle --style=java --suffix=none %"
        elseif &filetype == 'jsp'
            exec "!astyle --style=gnu --suffix=none %"
        elseif &filetype == 'xml'
            exec "!astyle --style=gnu --suffix=none %"
        else
            exec "normal gg=G"
            return
        endif
        exec "e! %"
    endfunc
    "结束定义FormartSrc
    
    
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    ""实用设置
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    if has("autocmd")
          autocmd BufReadPost *
              \ if line("'\"") > 0 && line("'\"") <= line("$") |
              \   exe "normal g`\"" |
              \ endif
    endif
    "当打开vim且没有文件时自动打开NERDTree
    autocmd vimenter * if !argc() | NERDTree | endif
    " 只剩 NERDTree时自动关闭
    autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif
    
    " 设置当文件被改动时自动载入
    set autoread
    " quickfix模式
    autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr>
    "代码补全 
    set completeopt=preview,menu 
    "允许插件  
    "filetype plugin on
    "共享剪贴板  
    "set clipboard+=unnamed 
    "自动保存
    set autowrite
    "set ruler                   " 打开状态栏标尺
    "set cursorline              " 突出显示当前行
    set magic                   " 设置魔术
    set guioptions-=T           " 隐藏工具栏
    set guioptions-=m           " 隐藏菜单栏
    ""set foldcolumn=0
    ""set foldmethod=indent 
    ""set foldlevel=3 
    " 不要使用vi的键盘模式,而是vim自己的
    set nocompatible
    " 去掉输入错误的提示声音
    set noeb
    " 在处理未保存或只读文件的时候,弹出确认
    set confirm
    "禁止生成临时文件
    set nobackup
    set noswapfile
    "搜索忽略大小写
    set ignorecase
    
    
    
    
    set linespace=0
    " 增强模式中的命令行自动完成操作
    set wildmenu
    " 使回格键(backspace)正常处理indent, eol, start等
    set backspace=2
    " 允许backspace和光标键跨越行边界
    set whichwrap+=<,>,h,l
    " 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
    "set mouse=a
    set selection=exclusive
    set selectmode=mouse,key
    " 通过使用: commands命令,告诉我们文件的哪一行被改变过
    set report=0
    " 在被分割的窗口间显示空白,便于阅读
    set fillchars=vert:\ ,stl:\ ,stlnc:\
    " 高亮显示匹配的括号
    set showmatch
    " 匹配括号高亮的时间(单位是十分之一秒)
    set matchtime=1
    " 光标移动到buffer的顶部和底部时保持3行距离
    set scrolloff=3
    " 为C程序提供自动缩进
    "自动补全
    "":inoremap ( ()<ESC>i
    "":inoremap ) <c-r>=ClosePair(')')<CR>
    ":inoremap { {<CR>}<ESC>O
    ":inoremap } <c-r>=ClosePair('}')<CR>
    "":inoremap [ []<ESC>i
    "":inoremap ] <c-r>=ClosePair(']')<CR>
    "":inoremap " ""<ESC>i
    "":inoremap ' ''<ESC>i
    ""function! ClosePair(char)
    ""        if getline('.')[col('.') - 1] == a:char
    ""                return "\<Right>"
    ""        else
    ""                return a:char
    ""        endif
    ""endfunction
    filetype plugin indent on 
    "打开文件类型检测, 加了这句才可以用智能补全
    set completeopt=longest,menu
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " CTags的设定  
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    let Tlist_Sort_Type = "name"    " 按照名称排序  
    let Tlist_Use_Right_Window = 1  " 在右侧显示窗口  
    let Tlist_Compart_Format = 1    " 压缩方式  
    let Tlist_Exist_OnlyWindow = 1  " 如果只有一个buffer,kill窗口也kill掉buffer  
    ""let Tlist_File_Fold_Auto_Close = 0  " 不要关闭其他文件的tags  
    ""let Tlist_Enable_Fold_Column = 0    " 不要显示折叠树  
    "let Tlist_Show_One_File=1            "不同时显示多个文件的tag,只显示当前文件的
    "设置tags  
    set tags=tags;  
    "set autochdir 
    
    
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "其他东东
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "默认打开Taglist 
    let Tlist_Auto_Open=0 
    """""""""""""""""""""""""""""" 
    " Tag list (ctags) 
    """""""""""""""""""""""""""""""" 
    let Tlist_Ctags_Cmd = '/usr/local/bin/ctags' 
    let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的 
    let Tlist_File_Fold_Auto_Close = 1
    let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim 
    let Tlist_Use_Right_Window = 1 "在右侧窗口中显示taglist窗口
    " minibufexpl插件的一般设置
    let g:miniBufExplMapWindowNavVim = 1
    let g:miniBufExplMapWindowNavArrows = 1
    let g:miniBufExplMapCTabSwitchBufs = 1
    let g:miniBufExplModSelTarget = 1  
    nmap tl :Tlist<cr>
    
    "python补全
    let g:pydiction_location = '~/.vim/after/complete-dict'
    let g:pydiction_menu_height = 20
    let Tlist_Ctags_Cmd='/usr/local/bin/ctags'
    let g:miniBufExplMapWindowNavVim = 1
    let g:miniBufExplMapWindowNavArrows = 1
    let g:miniBufExplMapCTabSwitchBufs = 1
    let g:miniBufExplModSelTarget = 1
    
    
    set iskeyword+=.
    set termencoding=utf-8
    set encoding=utf8
    set fileencodings=utf8,ucs-bom,gbk,cp936,gb2312,gb18030
    
    autocmd FileType python set omnifunc=pythoncomplete#Complete
    
    "set nocompatible               " be iMproved
    "filetype off                   " required!
    
    set rtp+=~/.vim/bundle/vundle/
    "call vundle#rc()
    
    " let Vundle manage Vundle
    " required! 
    "Bundle 'gmarik/vundle'
    
    " My Bundles here:
    "
    " original repos on github
    " Bundle 'tpope/vim-fugitive'
    " Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
    " Bundle 'Yggdroot/indentLine'
    let g:indentLine_char = '┊'
    "ndle 'tpope/vim-rails.git'
    " vim-scripts repos
    " Bundle 'L9'
    " Bundle 'FuzzyFinder'
    " non github repos
    " Bundle 'https://github.com/wincent/command-t.git'
    " Bundle 'Auto-Pairs'
    " Bundle 'python-imports.vim'
    " Bundle 'CaptureClipboard'
    " Bundle 'ctrlp-modified.vim'
    " Bundle 'last_edit_marker.vim'
    " Bundle 'synmark.vim'
    "Bundle 'Python-mode-klen'
    " Bundle 'SQLComplete.vim'
    " Bundle 'Javascript-OmniCompletion-with-YUI-and-j'
    "Bundle 'JavaScript-Indent'
    "Bundle 'Better-Javascript-Indentation'
    "Bundle 'jslint.vim'
    "Bundle "pangloss/vim-javascript"
    "Bundle 'Vim-Script-Updater'
    "Bundle 'ctrlp.vim'
    "Bundle 'tacahiroy/ctrlp-funky'
    "Bundle 'jsbeautify'
    "Bundle 'The-NERD-Commenter'
    "django
    "Bundle 'django_templates.vim'
    "Bundle 'Django-Projects'
    
    "Bundle 'FredKSchott/CoVim'
    "Bundle 'djangojump'
    " ...
    let g:html_indent_inctags = "html,body,head,tbody"
    let g:html_indent_script1 = "inc"
    let g:html_indent_style1 = "inc"
    
    filetype plugin indent on     " required!
    "
    "ctrlp设置
    "
    set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.pyc,*.png,*.jpg,*.gif     " MacOSX/Linux
    set wildignore+=*\\tmp\\*,*.swp,*.zip,*.exe,*.pyc,*.png,*.jpg,*.gif  " Windows
    
    let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$'
    let g:ctrlp_custom_ignore = '\v\.(exe|so|dll)$'
    let g:ctrlp_extensions = ['funky']
    
    let NERDTreeIgnore=['\.pyc']
    

    测试

    命令:
    创建并打开一个cpp文件

    vim test.cpp
    

    效果

    在这里插入图片描述

    展开全文
  • Ubuntu20.04 安装Vim报错

    2021-07-08 13:20:12
    Ubuntu系统中,软件源文件地址为:/etc/apt/sources.list 1.备份原来的源,将以前的源备份一下,以防以后可以用的。 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 2.打开/etc/apt/sources.list文件...

    解决方法如下(仅供参考):

    Ubuntu系统中,软件源文件地址为:

    /etc/apt/sources.list

    1.备份原来的源,将以前的源备份一下,以防以后可以用的。

    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

    2.打开/etc/apt/sources.list文件,在前面添加如下条目,并保存。

    sudo vim /etc/apt/sources.list(可将vim更换为自己熟悉的编辑器)
    #添加阿里源
    deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
    #添加清华源
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse multiverse

    3.更新源

    sudo apt-get update

    如出现依赖问题,解决方式如下:

    sudo apt-get -f install

    更新软件:

    sudo apt-get upgrade

    展开全文
  • Ubuntu20.04vim安装,配置及使用

    千次阅读 2021-04-07 15:53:09
    文章目录安装vim配置vimvim的三种模式使用1.vim 打开文件2.普通模式 —> 插入模式3.普通模式下的命令4.命令模式的命令5.查看文件内容 查看文件内容时尽量不要用vim6.异常终止了再次打开时会报错 安装vim 使用...


    安装vim

    使用命令$ sudo apt-get install vim 来安装vim,安装后的vim需要进行一些配置,不然使用起来会有些不方便,比如不会自动缩进。

    配置vim

    使用命令$ vim /etc/vim/vimrc修改vim配置文件 (修改该文件对所有用户都生效),在该文件最后添加如下代码:

    set ai                          " 自动缩进,新行与前面的行保持—致的自动空格
    set aw                          " 自动写,转入shell或使用:n编辑其他文件时,当前的缓冲区被写入
    set flash                       " 在出错处闪烁但不呜叫(缺省)
    set ic                          " 在查询及模式匹配时忽赂大小写
    set nu        
    set number                      " 屏幕左边显示行号
    "set showmatch                   " 显示括号配对,当键入“]”“)”时,高亮度显示匹配的括号
    set showmode                    " 处于文本输入方式时加亮按钮条中的模式指示器
    set showcmd                     " 在状态栏显示目前所执行的指令,未完成的指令片段亦会显示出来
    set warn/nowarn                 " 对文本进行了新的修改后,离开shell时系统给出显示(缺省)
    set ws/nows                     " 在搜索时如到达文件尾则绕回文件头继续搜索
    set wrap/nowrap                 " 长行显示自动折行
    "colorscheme evening            " 设定背景为夜间模式
    filetype plugin on              " 自动识别文件类型,自动匹配对应的, “文件类型Plugin.vim”文件,使用缩进定义文件
    set autoindent                  " 设置自动缩进:即每行的缩进值与上一行相等;使用 noautoindent 取消设置
    set cindent                     " 以C/C++的模式缩进
    set noignorecase                " 默认区分大小写
    set ruler                       " 打开状态栏标尺
    set scrolloff=5                 " 设定光标离窗口上下边界 5 行时窗口自动滚动
    set shiftwidth=4                " 设定 <<>> 命令移动时的宽度为 4
    set softtabstop=4               " 使得按退格键时可以一次删掉 4 个空格,不足 4 个时删掉所有剩下的空格)
    set tabstop=4                   " 设定 tab 长度为 4
    set wrap                        " 自动换行显示
    syntax enable
    syntax on                       " 自动语法高亮
    
    

    注意第10、11、12行只能选一个值,不然会报错。如果有些功能自己不需要可以在行前使用符号"注释该行。如果使用!wq不能保存,则使用命令 w! sudo tee % 进行保存。

    上面的方法是对vim的一些基本配置,更高级的配置可以通过vim插件实现。

    若命令$ vim /etc/vim/vimrc找不到文件,则用命令$ vim ~/.vimrc,进去添加和配置如上代码

    vim的三种模式

    1.普通模式

    当vim打开的时候就直接进入普通模式,在普通模式下可以进入命令,插入模式

    2.插入模式

    可以通过普通模式进入插入模式, 插入模式可以编辑文本

    3.命令模式

    可以通过普通模式进入命令模式,命令模式可以设置文本的保存退出方式

    .三种模式的切换

    1.普通模式—> 插入模式 i , a , o
    2.普通模式—>命令模式
    3.插入模式—>普通模式 esc
    4.命令模式 —>普通模式 删除 :

    使用

    1.vim 打开文件

    格式: vim 文件名 打开一个可编辑文件
    注:如果文件名不存在,会自动创建一个空的文件,并打开

    2.普通模式 —> 插入模式

    1. i 进入插入模式,按下i之后,光标不动,插入文本的时候,在原光标 前面 插入文本内容
    2. a 进入插入模式,按下a之后,光标向后移动一位,插入文本的时候,在原光标 后面 插入文本内容
    3. I 进入插入模式,按下I之后,光标会移动该行的起始位置,插入文本的时候,在行首位置开始插入内容
    4. A 进入插入模式,按下A之后,光标会移动该行的末尾位置,插入文本的时候,在行末尾置开始插入内容
    5. o 进入插入模式,按下o之后,会先在该行创建一个空的下一行,且光标在下一行的行首,直接会再下一行的行首插入内容
    6. O 进入插入模式,按下O之后,会先在该行创建一个空的上一行,且光标在上一行的行首,直接会再上一行的行首插入内容

    3.普通模式下的命令

    G :将光标移至最后一行行首

    nG :将光标移至第n行行首

    n+ :将光标下移n行

    n- :将光标上移n行

    n$ :光标下移至第n行行尾

    0(数字零) :将光标移到所在行的行首

    $ :将光标移到所在行的行尾

    ^ :将光标移动所在行的第一个字符(非空字符)

    h,j,k,l :分别用于光标左移,下移,上移,右移一个字符

    H :将光标移至当前屏幕首行的行首

    M :将光标移至屏幕显示中间行的行首

    L :将光标移至当前屏幕最低行的行首

    x :删除光标处的字符

    dw :删除一个单词

    **dd :删除光标所在行

    **yy :复制光标所在行

    **p :粘贴

    **/str :向右进行搜索

    **?str :向左进行搜索

    n :向相同的方向查找

    N :向不同的方向查找

    4.命令模式的命令

    先输入冒号":"
    wq 保存并退出
    q 退出
    q! 强制退出

    5.查看文件内容 查看文件内容时尽量不要用vim

    cat 文件名 直接查看文件内容 cat -n 文件名 显示文件内容,并显示行号,空白行算 cat -b 文件名 显示文件内容,并显示行号,空白行不算
    tac 文件名 倒叙查看文件内容
    head 文件名 直接查看文件内容 默认查看文件的最上面的10行 head -n 文件名 显示文件开始的n行内容
    tail 文件名 倒叙查看文件的内容 默认查看文件的最后的10行 tail -n 文件名 显示文件末尾的n行内容
    more 文件名 当文件内容过多的时候,分页显示内容, 按空格进行翻页
    wc 文件名 统计一个文件中各种数据的数量计算文件的Byte数、字数或是列数

    6.异常终止了再次打开时会报错

    通常会报” 源文件名.swp的文件已经存在”,原因: 当我们编辑文件的时候,系统为了安全,会自动的生成一个文件名为
    原文件名.swp的文件,用来保证源文件出错时,可以及时的恢复

    如果出现了异常,再次打开时,会直接打开swp文件, 可以删除,覆盖,修改….通常直接删除del

    本文转自:
    https://www.cnblogs.com/sench/p/vim.html
    https://blog.csdn.net/lixinghua666/article/details/82289809

    展开全文
  • Ubuntu20.04安装vim

    千次阅读 2021-10-03 11:29:04
    1、下载安装vim sudo apt-get install vim 2、安装完成后进入/etc/vim目录下配置文件,使用时更方便。 cd /etc/vim sudo vim vimrc 3、在末尾添加代码,然后保存退出,如图
  • Ubuntu20.04安装vim

    千次阅读 多人点赞 2020-10-14 14:46:37
    安装完成后进入/etc目录下配置文件,使用会舒服一点 sudo vim vimrc 在末尾添加代码 set nummber set history=1000 set autoindent set smartindent set tabstop=4 set shiftwidth=4 set showmatch 保存...
  • 1. Ubuntu安装vim时报错,如图: 2. 解决办法为依次执行以下4条命令: sudo apt-get purge vim-common sudo apt-get update sudo apt-get upgrade sudo apt-get install vim
  • ubuntu离线安装vim

    2021-02-05 11:57:21
    ubuntu离线安装vim
  • 以备不时之需 安装软件 sudo apt install vim sudo apt install cscope sudo apt install ctags sudo apt install git ...安装插件管理工具vundle.vim git clone https://github.com/VundleVim/Vundle.vim.git ~/
  • #保存方法 进入VIM编译器后按A进行操作,按ESC退出操作,按SHIFT+ZZ(按两次Z) 记录(小白一个纯属记录) 写完CPP后进行编译 g++ test1.cpp -o test1 test1是生成二进制可执行文件 运行./test1
  • 问题界面: 问题原因: apt还在运行。 解决方案: 杀死所有的apt进程。 步骤: 1.查找所有apt相关的进程,并用命令杀死。... 2....锁定的文件会阻止 Linux 系统中某些文件或者数据的访问,这个概念也存在于 Windows 或者...
  • 一、没有安装vim情况下更换镜像 1.打开终端,执行: sudo gedit /etc/apt/sources.list 2.将里面的内容更换为: # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb ...
  • Vim是一个高度可定制的跨平台文本编辑器,受到UNIX系统上著名的文本编辑器vi软件的启发。 Vim和Vi的主要特征是它们具有不同的模式,它们之间可以交替执行某些操作,这使它们与大多数普通编辑器区分开。Vim具有出色的...
  • Ubuntu20.04 vim 配置

    2022-04-04 19:16:02
    sudo apt install vim-youcompleteme && vim-addon-manager install youcompleteme 在用户目录下新建文件“.ycm_extra_conf.py”,复制以下代码到文件(该配置只针对C、C++!) import os import ycm_core ...
  • 目录ubuntu安装包获取ubuntu的安装安装网络配置命令ifconfig连接网络如何修改IP地址安装VMtools解决VMware Tools选项灰色VMtools安装安装中文,汉化添加中文输入法调整分辨率安装新版的Vim安装gcc解决:重装Vmware...
  • Ubuntu20.04安装教程

    千次阅读 2022-01-13 10:19:45
    文章目录Ubuntu20.04安装教程前期准备正式安装创建虚拟机安装空间配置虚拟机属性安装ubuntu系统安装分支(一)自动分区安装分支(二)手动分区统一的安装步骤安装后的系统配置配置root密码,激活root用户配置静态ip...
  • Ubuntu 20.04安装ftp

    2022-07-11 15:38:13
    Ubuntu安装ftp
  • Ubuntu20.04安装英伟达驱动步骤
  • Ubuntu20.04安装Mysql

    2022-04-13 17:11:26
    Ubuntu20.04安装Mysql 1、方法一: 下载安装MySQL(安装其他版本) 1.1在官网下载mysql安装包 1.2解压文件 1.3安装 2、方法二:通过apt 安装MySQL服务(推荐,会安装最新版) 2.1 初始化配置 2.2检查mysql...
  • 打开终端安装openssh-server软件包: 2.查看ssh状态 安装完成后,ssh服务默认启动了,可以通过下面的命令检查服务运行状态: 如果出现以下的内容,注意“active”是“running”,说明ssh服务启动了。 Ubuntu 默认...
  • 如何在ubuntu20.04下配置 魔趣P 源码编译环境及常见错误解决一 Ubuntu20.04 LTS 安装更新软件源->阿里云1.安装Chrome2.安装Vim3.点击图标最小化二 配置魔趣源码环境1.下载 git2.设置 git 账户3.下载python4.配置PATH...
  • Ubuntu20.04安装Redis

    2022-07-08 21:34:44
    学期结束,刚好整理这一学期在NoSQL数据库中的所学作一终结,也希望能够帮助步入学习NoSQL数据库的你。 本系列文章的编撰基于Ubuntu20.04版本。
  • 借着这次ubuntu20.04发布,再次装上体验一下。以下回顾一下安装以及软件配置和美化的过程。安装不记录全部过程,写点重点。(只针对本人的计算机)分区挂载点大小efi1024swap8192/35840/home余下全部启动引导器选择efi...
  • Ubuntu20.04安装Nvidia显卡驱动

    千次阅读 2022-06-21 19:11:13
    Ubuntu20.04安装Nvidia显卡驱动历程,遇到的问题及解决方法
  • Ubuntu 20.04安装ROS2

    千次阅读 2022-05-08 15:19:03
    Ubuntu 20.04安装ROS2 参考ROS2官方安装文档,安装ROS2。安装过程中会遇到如下问题 报错 1 运行 sudo curl -sSL ...
  • vim 编辑器搭建python IDE

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,634
精华内容 3,053
关键字:

ubuntu20.04安装vim