整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          PHPStorm屬性的HTML縮進

          于具有很多屬性的標簽,我希望在新行上分割每個屬性,當按Enter鍵調用新行時,它應該只縮進一個標簽。

          以下示例輸出我想如何縮進我的屬性:

          <svg width="300px" height="150px">
           <ellipse class="fill-current" 
           cx="150" 
           cy="75" 
           rx="100"
           ry="75"
           />
          </svg>
          

          但PHPStorm會自動嘗試將我所有的行縮進到當前屬性:

          <svg width="300px" height="150px">
           <ellipse class="fill-current"
           cx="150"
           cy="75"
           rx="100"
           ry="75"
           />
          </svg>
          

          我無法在設置(編輯器 - >代碼樣式 - > HTML)中找到任何選項來更改此行為。有誰知道這個問題的解決方案?

          這背后的原因是因為我經常在我的HTML模板中使用自定義標簽。有時候我自己的標簽很長,并且是2個或(罕見的情況下)3個單詞的組合,并且在新行上啟動所有額外屬性并且它不應該在標簽的末尾對齊。自己縮進屬性是很麻煩的。我想自動化它。

          elocity中常常會寫出#foreach #if #else #end等語句,
          但由于模板文件中html本身就帶有縮進,所以最終的縮進,并不符合velocity語句的含義。當主要針對velocity邏輯閱讀時,很不方便

          沒有處理格式代碼:

          模板代碼:

          模板代碼截圖


          生成html文件截圖:

          #if產生縮進后的截圖

          解決辦法:

          “#if#foreach#else#end”這些語法,不用任何縮進。并且行尾加##注釋,表示不解析后面空格


          定格寫,末尾加##注釋


          取消縮進后結果


          velocity-wiki地址

          https://cwiki.apache.org/confluence/display/velocity/VelocityWhitespaceTruncatedByLineComment

          解決辦法截圖

          件類型


          回憶上節課內容


          • 上次了解了縮進的各種方式 正常模式下用 << 縮進 插入模式下用 tab 縮進 顯示縮進情況 :set listchars=eol:$,tab:>-,space:_
          • 有關于縮進對應空格數的參數 expandtab shiftwidth tabstop softtabstop autoindent
          • 簡寫為 :set noet sw=4 ts=4 sts=4 ai
          • 不同的文件類型可以對應不同的縮進長度嗎??


          檢測文件類型


          ?



          • 首先需要檢測文件類型
          • :filetype 可以設置當前文件類型檢測信息 :filetype on 檢測文件擴展名 :filetype off 取消檢測文件擴展名
          • 如果是.c 并且:filetype on 就可以檢測文件類型為 .c 那我怎么知道 filetype 是什么呢?
          • :set filetype? 結果是 filetype=c
          • 但是如何單獨設置 .c 文件縮進為 8 呢?


          文件類型縮進設置


          • 我們書寫一個 demo.c
          • 可以發現這個文件 tab 是對應著 4 個空格的


          ?



          • 如果想單獨設置 .c 文件類型的縮進的話 需要打開文件類型縮進的開關 :filetype indent on


          找到縮進配置文件


          • 系統的配置文件的位置在 /usr/share/vim/vim81/indent/ c 對應 c.vim java 對應 java.vim html 對應 html.vim 不同的文件類型可以設置不同的縮進 c 縮進為 8 java 縮進為 4 html 縮進為 2 找到了 /usr/share/vim/vim81/indent/c.vim 就可以設置c的縮進
          • 在最后加上 :set et sw=8 ts=8 sts=8 ai
          • 然后退出并重新打開 demo.c
          • 再g g = G
          • 就可以按照新設置的 /usr/share/vim/vim81/indent/c.vim來重新控制縮進了


          更改文件類型


          ?



          • 我們打開 demo.c 時,系統會檢測他的文件類型
          • 但是如果我們非要 硬 要說他是一個 java 文件會如何呢?
          • :set filetype=java
          • 文件對于 include 之類的語法高亮消失了
          • g g = G
          • 讓文件縮進的數量變回了 4 按照java文件縮進的要求來做
          • 高亮可以根據文件類型而不同么?


          文件類型語法高亮


          #找出所有的java.vim文件
          sudo find / -name "java.vim"  


          • 找出所有和 java 有關的文件


          ?



          • 在 indent 下的 java.vim 負責縮進
          • 在 syntax 下的 java.vim 負責語法高亮
          • 語法高亮的設置在 /usr/share/vim/vim81/syntax/下面


          ?



          • :syntax on 可以設置關鍵詞高亮,這個是所有語法高亮的根開關


          文件類型的插件


          • 除此之外,也可以加載 java 文件類型的的插件 plugin 文件類型插件可以設置一鍵編譯運行、跳轉到函數定義之類的 前提是 :set filetype plugin on
          • 文件類型插件的設置在 /usr/share/vim/vim81/ftplugin/下面 ftplugin = FileType Plugin
          • 回憶文件類型縮進和語法 在 indent 下的 java.vim 負責縮進 在 syntax 下的 java.vim 負責語法高亮
          • 在 ftplugin 下的 java.vim 負責針對 java文件類型 的插件


          命名規則


          • 除了對于每個用戶都好使的高亮、縮進和插件之外
          • 用戶還可以設置只對于自己好使的高亮、縮進和插件


          ?



          • 以 java 語言的插件來舉例
          • 系統通用文件夾 /usr/share/vim/vim81/ftplugin/java.vim /usr/share/vim/vim81/ftplugin/java_xxx.vim /usr/share/vim/vim81/ftplugin/java/xxx.vim
          • 用戶專用文件夾 ~/.vim/ftplugin/java.vim ~/.vim/ftplugin/java_def.vim ~/.vim/ftplugin/java/header.vim
          • 上面是命名的規則 java 對應的就是 filetype


          文件夾不存在?


          • 如果沒有文件夾的話就要新建 :!mkdir -p ~/.vim/ftplugin 注意是 ftplugin 而不是 plugin plugin 里面的插件全部都被加載 ftplugin 里面的插件根據文件類型加載


          嘗試分文件類型進行控制


          • 保存后
          • 打開 java 文件時 狀態欄告訴我這是 java 文件 第三行 set statusline=[oeasy-java]%F%m
          • 打開 css 文件時 狀態欄告訴我這是 css 文件 第三行 set statusline=[oeasy-css]%F%m
          • 都設置好之后
          • 分別打開java文件和css文件


          ?



          強行指定


          ?



          • 如果我偏說 css 文件是 java 文件會如何呢? 可以注意到狀態欄的變化 由于不同文件類型 filetype 的 syntax 文件不同 用 css 的語法去標注 java 的高亮組 所以高亮顯示的狀態也不同


          總結


          • 根據擴展名我們可以設置某些特定類型文件的配置
          • 相關文件類型的設置放在相應的文件夾里
          • 文件類型縮進文件夾 /usr/share/vim/vim81/indent/
          • 文件類型語法高亮文件夾 /usr/share/vim/vim81/syntax/
          • 文件類型插件文件夾 系統通用文件夾 /usr/share/vim/vim81/ftplugin/java.vim /usr/share/vim/vim81/ftplugin/java_xxx.vim /usr/share/vim/vim81/ftplugin/java/xxx.vim 用戶專用插件文件夾 ~/.vim/ftplugin/java.vim ~/.vim/ftplugin/java_def.vim ~/.vim/ftplugin/java/header.vim
          • 在 文件夾~/.vim/ftplugin中 的 html.vim 的設置 只針對 html 包括文件的縮進、配色、語法高亮、行號、狀態欄等
          • :filetype indent on 文件類型縮進生效
          • :filetype syntax on 文件類型語法高亮生效
          • :filetype plugin on 文件類型插件生效


          ?



          • 還有什么好玩的嗎?
          • 下次再說

          ?


          主站蜘蛛池模板: 精品国产免费一区二区三区香蕉 | 亚洲AV无码一区二区三区久久精品| 午夜福利一区二区三区在线观看| 日韩精品国产一区| 午夜福利一区二区三区高清视频 | 在线观看国产一区二三区| 国产一区二区三区在线观看精品| 风间由美在线亚洲一区| 亚洲欧美成人一区二区三区| 亚洲AV美女一区二区三区| 亚洲综合无码AV一区二区| www一区二区www免费| 成人精品一区二区三区中文字幕| 亚洲AV无码一区二区三区DV| 无码人妻精品一区二区三区不卡 | 久久久久久综合一区中文字幕| 高清精品一区二区三区一区 | 亚洲一区精品无码| 国产成人AV一区二区三区无码| 麻豆一区二区三区精品视频| 亚洲一区二区三区高清| 亚洲一区二区三区久久久久| 国产视频一区在线观看| 少妇激情av一区二区| 交换国产精品视频一区| 一区二区三区波多野结衣| 久久久一区二区三区| 国产精品一区二区久久精品涩爱| 四虎成人精品一区二区免费网站 | 日韩精品电影一区亚洲| 在线观看午夜亚洲一区| 亚洲国产成人精品无码一区二区| 一区二区精品在线| 免费人妻精品一区二区三区| 国产免费一区二区三区不卡| 亚洲AV网一区二区三区| 精品视频在线观看一区二区 | 精品爆乳一区二区三区无码av| 学生妹亚洲一区二区 | 无码人妻av一区二区三区蜜臀| 伊人久久一区二区三区无码|