AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 56469
In Process
kolrie
kolrie
Asked: 2009-08-20 19:59:47 +0800 CST2009-08-20 19:59:47 +0800 CST 2009-08-20 19:59:47 +0800 CST

服务器端编辑的 Vim 配置

  • 772

我总是在我们的服务器上使用 Vim(主要是基于 Ubuntu),而且我总是缺乏一个适合通过 SSH 的 vim 而没有太多装饰的好配置。

我想为那些主要在服务器上直接编写 bash、zsh 和 ruby​​ 代码的人收集尽可能多的配置设置。

vim vimrc
  • 5 5 个回答
  • 1120 Views

5 个回答

  • Voted
  1. Drew Stephens
    2009-08-20T21:58:10+08:002009-08-20T21:58:10+08:00

    我最近学到的最好的东西是使用jj而不是<esc>进入正常模式:

    imap jj <Esc>
    

    此外,如果您通过split(tall terminal) 或vsplit(wide terminal) 命令使用拆分,则重新映射 switch-split 命令是非常宝贵的;我使用,(逗号)在我的拆分之间切换:

    map , <C-w><C-w>
    

    也可以在 Stack Overflow 上查看 vim的热门问题。

    • 1
  2. Daniel Lawson
    2009-08-20T21:19:46+08:002009-08-20T21:19:46+08:00

    我基本上在我使用的每个系统上都使用以下内容。不过,我并没有真正投入太多精力来修改它。我使用 vim 作为配置编辑工具,在大量服务器上,但这些天我不倾向于在 vim 上做很多开发

    set modeline
    set background=dark
    set autowrite
    nmap <tab> :bn<cr>
    nmap <s-tab> :bp<cr>
    

    nmap 选项让我可以使用 tab 和 shift-tab 在多个打开的缓冲区之间切换,我觉得这非常宝贵。

    • 0
  3. chmeee
    2009-08-21T00:00:31+08:002009-08-21T00:00:31+08:00

    检查dakrone的dotfiles.vimrc中的and 。.vim

    • 0
  4. evilchili
    2009-09-12T06:53:46+08:002009-09-12T06:53:46+08:00

    以下是我的 .vimrc,它主要关注 perl、mason 和 javascript IDE 功能,但您可以调整您在此处看到的 ruby​​/sh 细节。多年来一直通过 SSH 使用它。在 IDE 环境之外,自动备份不止一次地拯救了我。

    " Embedded() is a function that will parse a text buffer 
    " looking for embedded vim commands, and execute them.
    " Call it with a range of lines to check, eg to check the whole 
    " file:
    " 
    "  :%call Embedded() 
    "
    " Commands should be prefixed by the sequence :vim: .
    "
    function Embedded() range
        let n = a:firstline
        while n <= a:lastline
            let l = getline(n)
            let p = stridx(l,':vim:')
            if p > -1
                let p = p + 5 
                let c = strpart(l,p)
                execute c
            endif   
            let n = n + 1 
        endwhile 
    endfunction
    " call Embedded() whenever a file is loaded and 
    " parse the entire file.  You may not want to do 
    " this for *; maybe just your src tree or certain 
    " file types or something.
    autocmd BufWinEnter * %call Embedded()
    
    " Create nested folds on custom expressions, based 
    " on the current buffer's filetype or syntax. 
    "
    let g:foldlevel = 0 
    let g:foldstartexpr = ''
    let g:foldendexpr   = ''
    function GetCustomFold()
        if getline(v:lnum) =~ g:foldstartexpr
            let g:foldlevel = g:foldlevel + 1 
            return ">".g:foldlevel
        elseif getline(v:lnum) =~ g:foldendexpr
            let thislevel = g:foldlevel
            let g:foldlevel = g:foldlevel - 1 
            return "<".thislevel
        else
            return g:foldlevel
        endif
    endfunction
    function SetFoldType()
        let f = &filetype ? &filetype : &syntax
        if f == 'mason'
            let g:foldstartexpr = '^\s*<\(script\|style\|%init\|%attr\|%once\|%args\|%flags\|%shared\|%def\)[^>]*>\s*$'
            let g:foldendexpr   = '^\s*</\(script\|style\|%init\|%attr\|%once\|%args\|%flags\|%shared\|%def\)[^>]*>\s*$'
        elseif f == 'perl'
            let g:foldstartexpr = '^sub.*{\s*$'
            let g:foldendexpr   = '^}\s*$'
        elseif f == 'javascript'
            let g:foldstartexpr = '^function.*{\s*$'
            let g:foldendexpr   = '^}\s*$'
        else
            return
        endif
        setlocal foldexpr=GetCustomFold()
        setlocal foldmethod=expr
    endfunction
    autocmd BufWinEnter * %call SetFoldType()
    
    function SetPerlIDE()
        " check perl code with :make
        setlocal makeprg=perl\ -c\ %\ $*
        setlocal errorformat=%f:%l:%m
        setlocal autowrite
    
        " comment/uncomment blocks of code (in vmode)
        map ^C :s/^/#/gi<Enter>
        map ^X :s/^#//gi<Enter>
    
        " my perl includes pod
        let perl_include_pod = 1
    
        " syntax color complex things like @{${"foo"}}
        let perl_extended_vars = 1
    
        " Tidy selected lines (or entire file) with _t:
        nnoremap <silent> _t :%!perltidy -q<Enter>
        vnoremap <silent> _t :!perltidy -q<Enter>
    
        " perlcritic selected lines (or entire file) with _p:
        nnoremap <silent> _p :%!perlcritic -q<Enter>
        vnoremap <silent> _p :!perlcritic -q<Enter>
    endfunction
    autocmd FileType perl call SetPerlIDE()
    
    
    " map II :r ~/.vim/template.pod<CR>
    
    set tabstop=4
    set number
    set showmatch
    set ruler
    set backup
    set backupdir=~/.vim/backups
    set directory=~/.vim/backups
    set tags=~/.vim/tags
    
    set backupskip=/tmp/*,/private/tmp/*"
    
    " we get colors, we get lots and lots of colors
    syntax on
    set bg=dark
    colors darkblue
    
    • 0
  5. Rajat
    2009-09-12T07:19:51+08:002009-09-12T07:19:51+08:00

    如果你使用 vim,你可能会喜欢我的小工作

    第 1 步:从 vim.org 下载最新版本的插件

    从 vim.org 下载插件

    $ cd /usr/src $ wget -O mru.vim http://www.vim.org/scripts/download_script.php?src_id=9274

    第 2 步:安装 MRU vim 插件

    $ mkdir ~/.vim # 如果目录不存在 $ cd ~/.vim/plugin/ $ cp /usr/src/mru.vim .

    MRU.vim 的 7 个强大功能

    安装此插件后,每当您打开文件进行读取或写入时,它将被添加到 MRU 列表中。1. 在 Vi/Vim 编辑器中查看最近使用的文件

    :MRU

    注意: :MRU(大写)有效。:mru(小写)不起作用。

    :MRU 将显示“最近使用”的文件,按最近使用从上到下排序,如下所示。要打开文件,请在光标位于该文件名时按 ENTER。图:显示“最近文档”列表的 Vim 编辑器

    图:显示“最近文档”列表的 Vim 编辑器

    注意:安装 MRU 插件后,您可能看不到 MRU 列表中的任何文件。安装插件后使用 Vim 编辑器打开几个文件,以增加 MRU 列表。2.如何增加MRU List Count?(增加存储的文件数)

    默认情况下,MRU 列表仅存储最近 10 个使用的文件。将以下行添加到您的 ~/.vimrc 以增加此限制,如下所示。

    $ cat ~/.vimrc 让 MRU_Max_Entries = 20

    1. 如何在 MRU 列表中搜索文件

    当您增加文件数量时,可能难以滚动 MRU 列表来选择您要查找的文件。相反,您可以使用普通的 Vim 命令在 MRU 列表中进行搜索。所以你可以给出(斜杠)/并给出一个搜索模式。

    在以下示例中,MRU 列表非常长。我做了一个“/yum”,它自动将光标移动到 /etc/yum.conf MRU 条目。按回车键,将打开此文件。图:使用 / 搜索 MRU 列表

    图:使用 / 搜索 MRU 列表

    您还可以使用 MRU 搜索功能,如下所述。

    * Enter the partial file name and press TAB which will fill the file name, which you can open by pressing enter,
    * Enter one or two characters of the file name or the path name, and press tabs to rotate around the file names.
    
    1. 在新选项卡中打开 MRU 列表中的文件

    默认情况下,在 MRU 条目上按 enter 将在同一窗口中打开文件。如果当前窗口中打开的文件尚未保存,它将在新窗口中打开。

    * To open the file from the MRU entry in a new Tab , press ‘t’ when the cursor is on a file name in MRU window.
    * :tabn will take you to the next tab
    * :tabp will take you to the previous tab
    
    1. 更新 MRU 窗口

    要更新当前的 MRU 窗口,请按“u”。当打开 MRU 窗口时,它总是会打开较新的内容。6. 使用 MRU_Exclude_Files 排除某些文件

    要排除某些文件在 MRU 中显示,您可以将正则表达式存储在 MRU_Exclude_Files 变量中,如下所示:

    $ cat ~/.vimrc 让 MRU_Exclude_Files = '^/tmp/. \|^/var/tmp/. '" 对于 Unix

    以上将排除 /tmp 和 /var/tmp 存储在 MRU 中。7. 使用 MRU_Include_Files 包含某些文件

    要在 MRU 中仅包含某些类型的文件,您可以将正则表达式存储在 MRU_Include_Files 变量中,如下所示。这将仅包括 /home/ramesh 中要存储在 MRU 中的文件。

    $ cat ~/.vimrc 让 MRU_Include_Files = '^/home/rajat/.*'

    • 0

相关问题

  • Windows Powershell Vim 键绑定

  • 如何使用 VIM 编辑表格数据(表格)?具体来说,BIND(命名)DNS db 文件

  • 无法在 Vim 中突出显示活动的 eol 字符

  • 您可以在诺基亚 N810 上使用什么 $TERM 值,以便 Vim 的键映射正常工作?

  • 系统管理员 .vimrc 中的条目建议

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve