如何在neovim终端中禁用行号?

7

我来问一个问题:如何在neovim终端中禁用行号?

我尝试了这个:

autocmd BufRead,Filetype term://* set nonu

但是这个方法不管用。

我在init.vim文件中使用set number relativenumber

我尝试过nonumbernumber!,但对于终端来说都没有用。当我正常输入 :set nonu:set number! 时,我得到了 3 2 1 0 1 2 3 而不是 3 2 1 17 1 2 3

5个回答

24
您可以通过在终端缓冲区中键入以下命令来删除它们:
:setlocal nonumber norelativenumber

此外,您可以添加:

autocmd TermOpen * setlocal nonumber norelativenumber
在您的init.vim配置文件中,以保持每个neovim会话上的此设置。

在找到setlocal是正确的命令之前,我挣扎了一个小时。谢谢! - jc00ke
在终端中显示行号的目的是什么? - Dinko Pehar

4

将自动命令分组有助于避免它们的重复使用:(参考链接)

augroup neovim_terminal
    autocmd!
    " Enter Terminal-mode (insert) automatically
    autocmd TermOpen * startinsert
    " Disables number lines on terminal buffers
    autocmd TermOpen * :set nonumber norelativenumber
    " allows you to use Ctrl-c on terminal window
    autocmd TermOpen * nnoremap <buffer> <C-c> i<C-c>
augroup END

我现在有一个在我的 neovim 上的 init.lua 文件,以下是其中的内容(终端特定的设置在 terminal_job 中):

-- autocommands
--- This function is taken from https://github.com/norcalli/nvim_utils
function nvim_create_augroups(definitions)
  for group_name, definition in pairs(definitions) do
    api.nvim_command('augroup '..group_name)
    api.nvim_command('autocmd!')
    for _, def in ipairs(definition) do
      local command = table.concat(vim.tbl_flatten{'autocmd', def}, ' ')
      api.nvim_command(command)
    end
    api.nvim_command('augroup END')
  end
end

local autocmds = {
    reload_vimrc = {
        -- Reload vim config automatically
        {"BufWritePost",[[$VIM_PATH/{*.vim,*.yaml,vimrc} nested source $MYVIMRC | redraw]]};
    };
    packer = {
        { "BufWritePost", "plugins.lua", "PackerCompile" };
    };
    terminal_job = {
        { "TermOpen", "*", [[tnoremap <buffer> <Esc> <c-\><c-n>]] };
        { "TermOpen", "*", "startinsert" };
        { "TermOpen", "*", "setlocal listchars= nonumber norelativenumber" };
    };
    restore_cursor = {
        { 'BufRead', '*', [[call setpos(".", getpos("'\""))]] };
    };
    save_shada = {
        {"VimLeave", "*", "wshada!"};
    };
    resize_windows_proportionally = {
        { "VimResized", "*", ":wincmd =" };
    };
    toggle_search_highlighting = {
        { "InsertEnter", "*", "setlocal nohlsearch" };
    };
    lua_highlight = {
        { "TextYankPost", "*", [[silent! lua vim.highlight.on_yank() {higroup="IncSearch", timeout=400}]] };
    };
    ansi_esc_log = {
        { "BufEnter", "*.log", ":AnsiEsc" };
    };
}

nvim_create_augroups(autocmds)
-- autocommands END

3

创建_terminal.lua文件

-- ~./config/nvim/lua/_terminal.lua
local api = vim.api

api.nvim_command("autocmd TermOpen * startinsert")             -- starts in insert mode
api.nvim_command("autocmd TermOpen * setlocal nonumber")       -- no numbers
api.nvim_command("autocmd TermEnter * setlocal signcolumn=no") -- no sign column

vim.keymap.set('t', '<esc>', "<C-\\><C-n>")                    -- esc to exit insert mode
  • setlocal的作用是使编辑器的其他缓冲区不受更改的影响。

加载_terminal.lua文件

-- ~./config/nvim/lua.init

require("_terminal)

1
在 neovim 上,只需使用以下自动命令。
autocmd TermOpen * setlocal nonumber norelativenumber

0

不适用于 Neovim,而是 Vim,请将其放入您的 .vimrc 文件中

autocmd TerminalOpen * setlocal nonumber norelativenumber

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接