nvim 縮進4空格

要把 Neovim 配置為縮進 4 空格,并適用于所有語言(或某些語言如 C/C++),你只需要設置這三個核心選項即可:


? 通用方式:在 init.luaoptions.lua 中添加

vim.opt.tabstop = 4         -- 一個 <Tab> 等于 4 個空格
vim.opt.shiftwidth = 4      -- 縮進級別(按 >> 或 << 時移動的空格數)
vim.opt.softtabstop = 4     -- 輸入 <Tab> 時的空格數
vim.opt.expandtab = true    -- 用空格代替 tab 字符

這將讓:

  • 手動輸入 Tab 變成 4 空格;
  • 自動縮進使用 4 空格;
  • Visual 模式 >>、<< 操作都是 4 空格;
  • 插件識別為“你希望使用 4 空格縮進”。

🧠 這 4 個設置的區別(深入理解)

設置項作用
tabstop控制文件中 一個 tab 顯示為多少空格寬度
shiftwidth控制自動縮進、縮進操作時用幾個空格
softtabstop控制你按下 tab 鍵時輸入的空格數量
expandtab是否將 tab 實際轉換為空格寫入文件

配合 expandtab = true,這會將 tab 實際轉成空格保存。


📁 文件建議存放位置(LazyVim 用戶)

1?? 全局適用:

-- ~/.config/nvim/lua/config/options.lua
vim.opt.tabstop = 4
vim.opt.shiftwidth = 4
vim.opt.softtabstop = 4
vim.opt.expandtab = true

2?? 某些語言(如 C/C++)專用縮進:

-- ~/.config/nvim/lua/config/autocmds.lua
vim.api.nvim_create_autocmd("FileType", {pattern = { "c", "cpp", "h", "hpp" },callback = function()vim.opt_local.tabstop = 4vim.opt_local.shiftwidth = 4vim.opt_local.softtabstop = 4vim.opt_local.expandtab = trueend,
})

📌 檢查是否生效:

打開一個 .cpp 文件,輸入以下命令:

:set tabstop?
:set shiftwidth?
:set softtabstop?
:set expandtab?

如果你看到:

tabstop=4
shiftwidth=4
softtabstop=4expandtab

說明配置已經完全生效。


🔒 還不生效?排查建議:

  1. 插件如 conform.nvimlsp-formatformatter.nvim 會覆蓋縮進;
  2. 某些 ftplugin/*.vim 會為特定語言設置不同縮進(可用 :verbose set shiftwidth? 查看來源);
  3. LSP 的格式化功能可能生效(如 clangd);
  4. 保存時觸發 autocmd BufWritePre 調用了格式化器。

如果你正在用 LazyVim + 閱讀老項目代碼(如你那份 CentOS 6.10 C++ Makefile 項目),建議再配上:

  • :set foldmethod=indent(縮進折疊 Allman 風格代碼)
  • :set colorcolumn=130(防止長行看不見)
  • 禁用所有自動格式化

需要我打包這些嗎?可以打一個完整的 “代碼閱讀強化插件包”。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/93700.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/93700.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/93700.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

pdw估計edw怎么估計

問題一、pdw估計edw怎么估計PDW&#xff08;Pulse Descriptor Word&#xff09;數據是雷達接收到的每一個脈沖的瞬時特征數據&#xff0c;EDW&#xff08;Emitter Descriptor Word&#xff09;是對某一輻射源&#xff08;發射機&#xff09;整體特性的估計。PDW 是每一個脈沖的…

TS語法最佳實踐

switch 的 case不能使用條件表達式JavaScript 允許在 switch 的 case 中使用條件表達式&#xff0c;但這種用法實際上是無效的&#xff0c;因為 case 的值會被隱式地轉換為布爾值。TypeScript 明確禁止這種用法&#xff0c;以避免隱式類型轉換導致的邏輯錯誤。建議使用 if-else…

行業熱點丨仿真歷史數據難以使用?如何利用幾何深度學習破局,加速汽車工程創新

01、AI 驅動研發升級&#xff1a;幾何深度學習創造行業新價值人工智能正加速推動各行業研發能力升級。麥肯錫最新報告顯示&#xff0c;該技術在制藥、化工和航空航天等領域的應用&#xff0c;有望為相關企業創造高達5600億美元的經濟價值。 AI 技術應用的先行者&#xff0c;全球…

JSBridge原理與實現全解析

JSBridge 是用于連接 JavaScript&#xff08;H5&#xff09; 和原生應用&#xff08;iOS/Android&#xff09;的橋梁&#xff0c;允許它們之間相互調用方法。 &#x1f309; 一、JSBridge 雙向通信流程圖 #mermaid-svg-AoDVdJL2VJBnTJ2Q {font-family:"trebuchet ms"…

Mockito:Java單元測試Mock框架

文章目錄一、寫在前面1、簡介2、依賴二、使用1、基本使用2、注解&#xff08;1&#xff09;開啟注解&#xff08;2&#xff09;Mock 注解&#xff08;3&#xff09;DoNotMock 注解&#xff08;4&#xff09;Spy 注解&#xff08;5&#xff09;Captor 注解&#xff08;6&#xf…

群暉Synology Drive:打造高效安全的私有云協作平臺

隨著企業與個人對數據協作、安全與自主性的需求不斷提升&#xff0c;群暉&#xff08;Synology&#xff09;推出的 Synology Drive 成為了私人云存儲與團隊協作的利器。下面將從功能亮點、使用方式、安全管理、適用場景等角度&#xff0c;為你全面解讀這款強大的私有云方案。Sy…

開發避坑短篇(11):Oracle DATE(7)到MySQL時間類型精度沖突解決方案

異常信息 [Err] [Dtf] 1426 - Too-big precision 7 specified for CREATE_TIME. Maximum is 6.異常背景 用Navicat的數據傳輸功能進行oracle的數據表遷移到到mysql時報錯。 異常分析 oracle的DATE類型的長度是7位&#xff0c;而mysql的datetime類型的長度最多6位&#xff0c;所…

怎么判斷一個DAPP是否真正去中心化

判斷一個DAPP&#xff08;去中心化應用&#xff09;是否真正去中心化&#xff0c;需要從多個維度進行考察。以下是關鍵評估標準&#xff1a;1. 區塊鏈依賴程度? 真正去中心化&#xff1a;核心邏輯和數據處理完全依賴智能合約&#xff0c;運行在區塊鏈上&#xff08;如以太坊、…

F12 開發者工具 使用指北

F12 開發者工具 使用指北元素 Elements控制臺 Console源代碼 Sources網絡 Network請求文件具體說明首先介紹Chrome開發者工具中&#xff0c;調試時使用最多的三個功能頁面是&#xff1a;元素&#xff08;ELements&#xff09;、控制臺&#xff08;Console&#xff09;、源代碼&…

AD域設計與管理-域策略-進階

AD域安全保密要求&#xff0c;也是最為常見的一些組策略配置需求 目錄 1.禁止U盤&#xff0c;DVD&#xff0c;軟盤等可移動存儲使用 2.禁止員工自行安裝軟件 3.硬盤全部采用bitlocker上鎖&#xff0c;密碼保存至AD域控 4.密碼復雜度要求 5.開啟windows防火墻且不允許員工…

Python設計模式詳解:策略模式(Strategy Pattern)實戰指南

Python設計模式詳解&#xff1a;策略模式實戰指南什么是策略模式&#xff1f;核心組件基礎實現利用Python特性的高級實現使用裝飾器的策略模式策略模式的優勢策略模式的適用場景實際應用案例&#xff1a;電商折扣系統注意事項總結在面向對象編程中&#xff0c;設計模式為常見問…

一次 web 請求響應中,通常那個部分最耗時?

文章目錄一次Web請求的完整旅程1. DNS解析2. TCP連接建立3. 發送HTTP請求4. 服務器處理5. 服務器響應6. 瀏覽器渲染哪個環節通常最耗時&#xff1f;1. 數據庫查詢2. 外部API調用3. 復雜的業務邏輯如何優化各個環節&#xff1f;1. 數據庫優化2. 緩存策略3. 異步處理總結一次Web請…

IO流-概述和體系

1.什么是I0流?存儲和讀取數據的解決方案|: input 0: output流:像水流一樣傳輸數據2.10流的作用?用于讀寫數據(本地文件&#xff0c;網絡)3. I0流按照流向可以分類哪兩種流?輸出流:程序-->文件輸入流:文件-->程序4. I0流按照操作文件的類型可以分類哪兩種流?…

提高建筑舒適度與能源效率,樓宇自控系統意義重大

隨著城市化進程的加速和人們對建筑環境要求的不斷提高&#xff0c;如何在保證建筑舒適度的同時提升能源效率&#xff0c;成為建筑行業面臨的重要課題。樓宇自控系統&#xff08;Building Automation System&#xff0c;簡稱BAS&#xff09;作為現代智能建筑的核心組成部分&…

學習筆記《區塊鏈技術與應用》第4天 比特幣腳本語言

輸入0.7 輸出0.5 23個確認 不太可能回滾了交易id hash值 版本 locktime 交易剩下時間&#xff1a;0立即生效 confirmation:確認信息 time&#xff1a;產生時間 blocktime&#xff1a;塊產生時間vout: 交易中第0個輸入 scriptSig&#xff1a;輸入腳本&#xff08;input script)n…

3.Linux 系統文件類型與文件權限

1.文件類型Linux 下所有的東西都可以看做文件&#xff0c;Linux 將文件分為以下幾種類型&#xff1a;普通文件 ‘-’目錄文件 ‘d’管道文件 ‘p’鏈接文件 ‘l’設備文件&#xff08;塊設備 ’b’ 、字符設備 ‘c’&#xff09;套接字文件 ‘s’Linux 上不以文件的擴展名區別文…

訂單識別技術原理及場景應用

訂單OCR&#xff08;光學字符識別&#xff09;技術通過圖像處理和深度學習算法&#xff0c;將紙質或電子版訂單中的文字信息轉化為結構化數據。以下是其技術原理和典型應用場景的詳細解析&#xff1a;一、技術原理剖析1. 核心處理流程圖像預處理去噪&#xff1a;消除陰影、折痕…

[優選算法]復寫零

題目鏈接 LeetCode復寫零 題目描述 題目解析 一、問題理解 題目要求&#xff1a;給定一個整數數組 arr&#xff0c;在不創建新數組的情況下&#xff0c;將每個出現的 0 復寫一遍&#xff08;即一個 0 變成兩個 0&#xff09;&#xff0c;同時保持其他元素的相對順序不變。復…

element UI的el-table組件,實現可以拖動

表格 <div class"main_table"><el-table id"elTableid" :data"fieldArr" border style"width: 100%" row-class-name"drag-row"current-row-key highlight-current-row><el-table-column type"index&qu…

Android Emoji 全面解析:從使用到自定義

引言 Emoji已經成為現代數字通信不可或缺的一部分&#xff0c;這些小小的圖標能夠跨越語言障礙&#xff0c;直觀地表達情感和想法。在Android開發中&#xff0c;正確處理和顯示Emoji是提升用戶體驗的重要環節。本文將全面介紹Android平臺上的Emoji支持&#xff0c;包括系統集成…