diff options
author | 2025-01-07 12:36:05 +0800 | |
---|---|---|
committer | 2025-01-07 12:36:05 +0800 | |
commit | 4d88ef666eee1b6f191f6e85b00acf8d5a2d1899 (patch) | |
tree | 68391846bae84f9546b0d089c012afc336a6e6bd /code/linux/vim.html | |
parent | 11e64c5804b696f170b9d5d881befbabc4a4e85c (diff) | |
download | myweb-new_highlightjs.tar.gz myweb-new_highlightjs.zip |
highlight don't use auto-detect but given languagenew_highlightjs
In this commit, lot's of things is changed. Hope they all runs
currectly.
Now highlight.js is supporting more and more proguam languages, but
the auto detection always go wrong, even for common languages like c,
bash, python, makefile.
Use Given Language
------------------
As you know, I always write markdown and convert to html by pandoc. In
the old, "```cpp" in markdown will be deleted first to keep the embeded
code clean and not highlighted, then I can use highlight.js. But this
causes that html document doesn't know the language.
This time, md2html.sh is changed: pandoc use "--no-highlight"
argument to keep code clean, and it will output like this:
```html
<pre class="cpp"><code>...</code></pre>
```
Although there may be other tags between `<code></code>`, it's clear
that `<pre class="xxx"><code>` is nested tightly, except some space
characters or \n.
Then, sed deal with the whole doc(not line by line), replace `<pre
class="xxx"><code>` with `<pre><code class="language-xxx">`. That's it!
Math Formula
------------
Math formular is also a problem during convertion by pandoc. In the old
it's dealed menually. Now pandoc use "--mathjax=none", then formula is
no longer showed by pandoc, but only `<span class="math xxx">\( formula \)</span>`.
And the math tool I used will deal with it.
Mermaid picture
----------------
pandoc doesn't support convert mermaid in markdown to html picture.
Let's have a warning!
Diffstat (limited to 'code/linux/vim.html')
-rw-r--r-- | code/linux/vim.html | 391 |
1 files changed, 21 insertions, 370 deletions
diff --git a/code/linux/vim.html b/code/linux/vim.html index 75e0075..efff915 100644 --- a/code/linux/vim.html +++ b/code/linux/vim.html | |||
@@ -7,14 +7,16 @@ | |||
7 | <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> | 7 | <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> |
8 | <title>vim学习与我的配置</title> | 8 | <title>vim学习与我的配置</title> |
9 | <link rel="stylesheet" href="https://www.qin-juan-ge-zhu.top/common/CSS/pandoc.css"> | 9 | <link rel="stylesheet" href="https://www.qin-juan-ge-zhu.top/common/CSS/pandoc.css"> |
10 | <script type="text/javascript" src="https://hl.qin-juan-ge-zhu.top/myset/myhighlight.js"></script> | ||
11 | <script type="text/javascript" src="https://www.qin-juan-ge-zhu.top/common/script4code.js"></script> | 10 | <script type="text/javascript" src="https://www.qin-juan-ge-zhu.top/common/script4code.js"></script> |
12 | </head> | 11 | </head> |
13 | 12 | ||
14 | <body> | 13 | <body> |
15 | <div class="pandoc"> | 14 | <div class="pandoc"> |
16 | <div class="main"> | 15 | <div class="main"> |
17 | <p class="title">vim学习与我的配置</p> | 16 | <header id="title-block-header"> |
17 | <p class="title">vim学习与我的配置</p> | ||
18 | </header> | ||
19 | <!-- 我的vim设置 --> | ||
18 | <h1 id="vim-那是个什么-jb-东西">vim? 那是个什么 JB 东西?</h1> | 20 | <h1 id="vim-那是个什么-jb-东西">vim? 那是个什么 JB 东西?</h1> |
19 | <p>Enjoy coding 的你,是否时常痛恨鼠标点来点去、方向键远离字母,耽误码字?可曾詈骂手动批量重复处理的痛苦?Debug | 21 | <p>Enjoy coding 的你,是否时常痛恨鼠标点来点去、方向键远离字母,耽误码字?可曾詈骂手动批量重复处理的痛苦?Debug |
20 | 时代码上下反复跳转,令你烦闷否?别人写的编辑器设置种种不便,是否想过有一个自己私人订制的编辑器?如果你有以上苦恼,那么 vim 将是你的绝佳选择。</p> | 22 | 时代码上下反复跳转,令你烦闷否?别人写的编辑器设置种种不便,是否想过有一个自己私人订制的编辑器?如果你有以上苦恼,那么 vim 将是你的绝佳选择。</p> |
@@ -52,355 +54,7 @@ | |||
52 | </tbody> | 54 | </tbody> |
53 | </table> | 55 | </table> |
54 | <p>其关系如下:</p> | 56 | <p>其关系如下:</p> |
55 | <div class="md-diagram-panel md-fences-adv-panel" lang="mermaid"><svg id="mermaidChart0" width="100%" | 57 | <img src="https://www.qin-juan-ge-zhu.top/images/code/vim_mode.png"> |
56 | xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" | ||
57 | style="max-width: 262.825px; margin: auto;" viewBox="-8 -8 262.82501220703125 235.02500915527344" | ||
58 | role="graphics-document document" aria-roledescription="flowchart-v2"> | ||
59 | <style> | ||
60 | #mermaidChart0 { | ||
61 | font-family: sans-serif; | ||
62 | font-size: 16px; | ||
63 | fill: #333; | ||
64 | } | ||
65 | |||
66 | #mermaidChart0 .error-icon { | ||
67 | fill: #552222; | ||
68 | } | ||
69 | |||
70 | #mermaidChart0 .error-text { | ||
71 | fill: #552222; | ||
72 | stroke: #552222; | ||
73 | } | ||
74 | |||
75 | #mermaidChart0 .edge-thickness-normal { | ||
76 | stroke-width: 2px; | ||
77 | } | ||
78 | |||
79 | #mermaidChart0 .edge-thickness-thick { | ||
80 | stroke-width: 3.5px; | ||
81 | } | ||
82 | |||
83 | #mermaidChart0 .edge-pattern-solid { | ||
84 | stroke-dasharray: 0; | ||
85 | } | ||
86 | |||
87 | #mermaidChart0 .edge-pattern-dashed { | ||
88 | stroke-dasharray: 3; | ||
89 | } | ||
90 | |||
91 | #mermaidChart0 .edge-pattern-dotted { | ||
92 | stroke-dasharray: 2; | ||
93 | } | ||
94 | |||
95 | #mermaidChart0 .marker { | ||
96 | fill: #333333; | ||
97 | stroke: #333333; | ||
98 | } | ||
99 | |||
100 | #mermaidChart0 .marker.cross { | ||
101 | stroke: #333333; | ||
102 | } | ||
103 | |||
104 | #mermaidChart0 svg { | ||
105 | font-family: sans-serif; | ||
106 | font-size: 16px; | ||
107 | } | ||
108 | |||
109 | #mermaidChart0 .label { | ||
110 | font-family: sans-serif; | ||
111 | color: #333; | ||
112 | } | ||
113 | |||
114 | #mermaidChart0 .cluster-label text { | ||
115 | fill: #333; | ||
116 | } | ||
117 | |||
118 | #mermaidChart0 .cluster-label span, | ||
119 | #mermaidChart0 p { | ||
120 | color: #333; | ||
121 | } | ||
122 | |||
123 | #mermaidChart0 .label text, | ||
124 | #mermaidChart0 span, | ||
125 | #mermaidChart0 p { | ||
126 | fill: #333; | ||
127 | color: #333; | ||
128 | } | ||
129 | |||
130 | #mermaidChart0 .node rect, | ||
131 | #mermaidChart0 .node circle, | ||
132 | #mermaidChart0 .node ellipse, | ||
133 | #mermaidChart0 .node polygon, | ||
134 | #mermaidChart0 .node path { | ||
135 | fill: #ECECFF; | ||
136 | stroke: #9370DB; | ||
137 | stroke-width: 1px; | ||
138 | } | ||
139 | |||
140 | #mermaidChart0 .flowchart-label text { | ||
141 | text-anchor: middle; | ||
142 | } | ||
143 | |||
144 | #mermaidChart0 .node .label { | ||
145 | text-align: center; | ||
146 | } | ||
147 | |||
148 | #mermaidChart0 .node.clickable { | ||
149 | cursor: pointer; | ||
150 | } | ||
151 | |||
152 | #mermaidChart0 .arrowheadPath { | ||
153 | fill: #333333; | ||
154 | } | ||
155 | |||
156 | #mermaidChart0 .edgePath .path { | ||
157 | stroke: #333333; | ||
158 | stroke-width: 2.0px; | ||
159 | } | ||
160 | |||
161 | #mermaidChart0 .flowchart-link { | ||
162 | stroke: #333333; | ||
163 | fill: none; | ||
164 | } | ||
165 | |||
166 | #mermaidChart0 .edgeLabel { | ||
167 | background-color: #e8e8e8; | ||
168 | text-align: center; | ||
169 | } | ||
170 | |||
171 | #mermaidChart0 .edgeLabel rect { | ||
172 | opacity: 0.5; | ||
173 | background-color: #e8e8e8; | ||
174 | fill: #e8e8e8; | ||
175 | } | ||
176 | |||
177 | #mermaidChart0 .labelBkg { | ||
178 | background-color: rgba(232, 232, 232, 0.5); | ||
179 | } | ||
180 | |||
181 | #mermaidChart0 .cluster rect { | ||
182 | fill: #ffffde; | ||
183 | stroke: #aaaa33; | ||
184 | stroke-width: 1px; | ||
185 | } | ||
186 | |||
187 | #mermaidChart0 .cluster text { | ||
188 | fill: #333; | ||
189 | } | ||
190 | |||
191 | #mermaidChart0 .cluster span, | ||
192 | #mermaidChart0 p { | ||
193 | color: #333; | ||
194 | } | ||
195 | |||
196 | #mermaidChart0 div.mermaidTooltip { | ||
197 | position: absolute; | ||
198 | text-align: center; | ||
199 | max-width: 200px; | ||
200 | padding: 2px; | ||
201 | font-family: sans-serif; | ||
202 | font-size: 12px; | ||
203 | background: hsl(80, 100%, 96.2745098039%); | ||
204 | border: 1px solid #aaaa33; | ||
205 | border-radius: 2px; | ||
206 | pointer-events: none; | ||
207 | z-index: 100; | ||
208 | } | ||
209 | |||
210 | #mermaidChart0 .flowchartTitleText { | ||
211 | text-anchor: middle; | ||
212 | font-size: 18px; | ||
213 | fill: #333; | ||
214 | } | ||
215 | |||
216 | #mermaidChart0 :root { | ||
217 | --mermaid-alt-font-family: sans-serif; | ||
218 | } | ||
219 | </style> | ||
220 | <g> | ||
221 | <marker id="mermaidChart0_flowchart-pointEnd" class="marker flowchart" viewBox="0 0 10 10" | ||
222 | refX="6" refY="5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" | ||
223 | orient="auto"> | ||
224 | <path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" | ||
225 | style="stroke-width: 1; stroke-dasharray: 1, 0;"></path> | ||
226 | </marker> | ||
227 | <marker id="mermaidChart0_flowchart-pointStart" class="marker flowchart" viewBox="0 0 10 10" | ||
228 | refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" | ||
229 | orient="auto"> | ||
230 | <path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" | ||
231 | style="stroke-width: 1; stroke-dasharray: 1, 0;"></path> | ||
232 | </marker> | ||
233 | <marker id="mermaidChart0_flowchart-circleEnd" class="marker flowchart" viewBox="0 0 10 10" | ||
234 | refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" | ||
235 | orient="auto"> | ||
236 | <circle cx="5" cy="5" r="5" class="arrowMarkerPath" | ||
237 | style="stroke-width: 1; stroke-dasharray: 1, 0;"></circle> | ||
238 | </marker> | ||
239 | <marker id="mermaidChart0_flowchart-circleStart" class="marker flowchart" viewBox="0 0 10 10" | ||
240 | refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" | ||
241 | orient="auto"> | ||
242 | <circle cx="5" cy="5" r="5" class="arrowMarkerPath" | ||
243 | style="stroke-width: 1; stroke-dasharray: 1, 0;"></circle> | ||
244 | </marker> | ||
245 | <marker id="mermaidChart0_flowchart-crossEnd" class="marker cross flowchart" viewBox="0 0 11 11" | ||
246 | refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" | ||
247 | orient="auto"> | ||
248 | <path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" | ||
249 | style="stroke-width: 2; stroke-dasharray: 1, 0;"></path> | ||
250 | </marker> | ||
251 | <marker id="mermaidChart0_flowchart-crossStart" class="marker cross flowchart" | ||
252 | viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" | ||
253 | markerHeight="11" orient="auto"> | ||
254 | <path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" | ||
255 | style="stroke-width: 2; stroke-dasharray: 1, 0;"></path> | ||
256 | </marker> | ||
257 | <g class="root"> | ||
258 | <g class="clusters"></g> | ||
259 | <g class="edgePaths"> | ||
260 | <path d="M48.358,89.675L97.363,9.837L122.363,9.837L147.363,9.837L175.048,14.286" | ||
261 | id="L-N-I-0" | ||
262 | class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-N LE-I" | ||
263 | style="fill:none;" marker-end="url(#mermaidChart0_flowchart-pointEnd)"></path> | ||
264 | <path d="M71.02,89.675L97.363,74.675L122.363,74.675L147.363,74.675L174.744,90.003" | ||
265 | id="L-N-V-0" | ||
266 | class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-N LE-V" | ||
267 | style="fill:none;" marker-end="url(#mermaidChart0_flowchart-pointEnd)"></path> | ||
268 | <path d="M58.314,129.35L97.363,164.35L122.363,164.35L147.363,164.35L169.533,176.761" | ||
269 | id="L-N-R-0" | ||
270 | class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-N LE-R" | ||
271 | style="fill:none;" marker-end="url(#mermaidChart0_flowchart-pointEnd)"></path> | ||
272 | <path d="M180.281,36.247L147.363,54.675L122.363,54.675L97.363,54.675L62.26,86.138" | ||
273 | id="L-I-N-0" | ||
274 | class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-I LE-N" | ||
275 | style="fill:none;" marker-end="url(#mermaidChart0_flowchart-pointEnd)"></path> | ||
276 | <path d="M179.369,126.433L147.363,144.35L122.363,144.35L97.363,144.35L75.625,131.973" | ||
277 | id="L-V-N-0" | ||
278 | class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-V LE-N" | ||
279 | style="fill:none;" marker-end="url(#mermaidChart0_flowchart-pointEnd)"></path> | ||
280 | <path d="M172.363,205.17L147.363,209.187L122.363,209.187L97.363,209.187L51.13,133.867" | ||
281 | id="L-R-N-0" | ||
282 | class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-R LE-N" | ||
283 | style="fill:none;" marker-end="url(#mermaidChart0_flowchart-pointEnd)"></path> | ||
284 | </g> | ||
285 | <g class="edgeLabels"> | ||
286 | <g class="edgeLabel"> | ||
287 | <g class="label" transform="translate(0, 0)"> | ||
288 | <foreignObject width="0" height="0"> | ||
289 | <div xmlns="http://www.w3.org/1999/xhtml" | ||
290 | style="display: inline-block; white-space: nowrap;"><span | ||
291 | class="edgeLabel"></span></div> | ||
292 | </foreignObject> | ||
293 | </g> | ||
294 | </g> | ||
295 | <g class="edgeLabel"> | ||
296 | <g class="label" transform="translate(0, 0)"> | ||
297 | <foreignObject width="0" height="0"> | ||
298 | <div xmlns="http://www.w3.org/1999/xhtml" | ||
299 | style="display: inline-block; white-space: nowrap;"><span | ||
300 | class="edgeLabel"></span></div> | ||
301 | </foreignObject> | ||
302 | </g> | ||
303 | </g> | ||
304 | <g class="edgeLabel"> | ||
305 | <g class="label" transform="translate(0, 0)"> | ||
306 | <foreignObject width="0" height="0"> | ||
307 | <div xmlns="http://www.w3.org/1999/xhtml" | ||
308 | style="display: inline-block; white-space: nowrap;"><span | ||
309 | class="edgeLabel"></span></div> | ||
310 | </foreignObject> | ||
311 | </g> | ||
312 | </g> | ||
313 | <g class="edgeLabel"> | ||
314 | <g class="label" transform="translate(0, 0)"> | ||
315 | <foreignObject width="0" height="0"> | ||
316 | <div xmlns="http://www.w3.org/1999/xhtml" | ||
317 | style="display: inline-block; white-space: nowrap;"><span | ||
318 | class="edgeLabel"></span></div> | ||
319 | </foreignObject> | ||
320 | </g> | ||
321 | </g> | ||
322 | <g class="edgeLabel"> | ||
323 | <g class="label" transform="translate(0, 0)"> | ||
324 | <foreignObject width="0" height="0"> | ||
325 | <div xmlns="http://www.w3.org/1999/xhtml" | ||
326 | style="display: inline-block; white-space: nowrap;"><span | ||
327 | class="edgeLabel"></span></div> | ||
328 | </foreignObject> | ||
329 | </g> | ||
330 | </g> | ||
331 | <g class="edgeLabel"> | ||
332 | <g class="label" transform="translate(0, 0)"> | ||
333 | <foreignObject width="0" height="0"> | ||
334 | <div xmlns="http://www.w3.org/1999/xhtml" | ||
335 | style="display: inline-block; white-space: nowrap;"><span | ||
336 | class="edgeLabel"></span></div> | ||
337 | </foreignObject> | ||
338 | </g> | ||
339 | </g> | ||
340 | </g> | ||
341 | <g class="nodes"> | ||
342 | <g class="node default default flowchart-label" id="flowchart-N-0" | ||
343 | transform="translate(36.181251525878906, 109.51249885559082)"> | ||
344 | <rect class="basic label-container" style="" rx="5" ry="5" x="-36.18124961853027" | ||
345 | y="-19.83750057220459" width="72.36249923706055" height="39.67500114440918"> | ||
346 | </rect> | ||
347 | <g class="label" style="" | ||
348 | transform="translate(-28.681249618530273, -12.33750057220459)"> | ||
349 | <rect></rect> | ||
350 | <foreignObject width="57.36249923706055" height="24.67500114440918"> | ||
351 | <div xmlns="http://www.w3.org/1999/xhtml" | ||
352 | style="display: inline-block; white-space: nowrap;"><span | ||
353 | class="nodeLabel">Normal</span></div> | ||
354 | </foreignObject> | ||
355 | </g> | ||
356 | </g> | ||
357 | <g class="node default default flowchart-label" id="flowchart-I-1" | ||
358 | transform="translate(209.59375381469727, 19.837499618530273)"> | ||
359 | <rect class="basic label-container" style="" rx="5" ry="5" x="-29.3125" | ||
360 | y="-19.83750057220459" width="58.625" height="39.67500114440918"></rect> | ||
361 | <g class="label" style="" transform="translate(-21.8125, -12.33750057220459)"> | ||
362 | <rect></rect> | ||
363 | <foreignObject width="43.625" height="24.67500114440918"> | ||
364 | <div xmlns="http://www.w3.org/1999/xhtml" | ||
365 | style="display: inline-block; white-space: nowrap;"><span | ||
366 | class="nodeLabel">Insert</span></div> | ||
367 | </foreignObject> | ||
368 | </g> | ||
369 | </g> | ||
370 | <g class="node default default flowchart-label" id="flowchart-V-3" | ||
371 | transform="translate(209.59375381469727, 109.51249885559082)"> | ||
372 | <rect class="basic label-container" style="" rx="5" ry="5" x="-30.225000381469727" | ||
373 | y="-19.83750057220459" width="60.45000076293945" height="39.67500114440918"> | ||
374 | </rect> | ||
375 | <g class="label" style="" | ||
376 | transform="translate(-22.725000381469727, -12.33750057220459)"> | ||
377 | <rect></rect> | ||
378 | <foreignObject width="45.45000076293945" height="24.67500114440918"> | ||
379 | <div xmlns="http://www.w3.org/1999/xhtml" | ||
380 | style="display: inline-block; white-space: nowrap;"><span | ||
381 | class="nodeLabel">Visual</span></div> | ||
382 | </foreignObject> | ||
383 | </g> | ||
384 | </g> | ||
385 | <g class="node default default flowchart-label" id="flowchart-R-5" | ||
386 | transform="translate(209.59375381469727, 199.18749809265137)"> | ||
387 | <rect class="basic label-container" style="" rx="5" ry="5" x="-37.23125076293945" | ||
388 | y="-19.83750057220459" width="74.4625015258789" height="39.67500114440918"> | ||
389 | </rect> | ||
390 | <g class="label" style="" | ||
391 | transform="translate(-29.731250762939453, -12.33750057220459)"> | ||
392 | <rect></rect> | ||
393 | <foreignObject width="59.462501525878906" height="24.67500114440918"> | ||
394 | <div xmlns="http://www.w3.org/1999/xhtml" | ||
395 | style="display: inline-block; white-space: nowrap;"><span | ||
396 | class="nodeLabel">Replace</span></div> | ||
397 | </foreignObject> | ||
398 | </g> | ||
399 | </g> | ||
400 | </g> | ||
401 | </g> | ||
402 | </g> | ||
403 | </svg></div> | ||
404 | <h1 id="我的-vim-学习路线">我的 vim 学习路线</h1> | 58 | <h1 id="我的-vim-学习路线">我的 vim 学习路线</h1> |
405 | <p>不幸的是 Vim 的学习曲线确实相当陡峭,最开始你会觉得非常不适应,但一旦熬过了初始阶段,你会爱上 Vim。以我而言,现在离开了 vim 的模式几乎已经快不会写材料了,前几天交作业要求 | 59 | <p>不幸的是 Vim 的学习曲线确实相当陡峭,最开始你会觉得非常不适应,但一旦熬过了初始阶段,你会爱上 Vim。以我而言,现在离开了 vim 的模式几乎已经快不会写材料了,前几天交作业要求 |
406 | word,我保存文件居然不是<kbd>Ctrl+s</kbd>,而是顺手来了个<kbd>:wq</kbd>。</p> | 60 | word,我保存文件居然不是<kbd>Ctrl+s</kbd>,而是顺手来了个<kbd>:wq</kbd>。</p> |
@@ -446,11 +100,11 @@ | |||
446 | </ul> | 100 | </ul> |
447 | <h2 id="清理干净">清理干净</h2> | 101 | <h2 id="清理干净">清理干净</h2> |
448 | <p>下载的第一步当然是卸载当前系统具有的 vim 了。除此之外,由于 Python2 过于老旧,我选择不支持 Python2 仅支持 Python3 的 vim,因此也将 Python2 卸载。</p> | 102 | <p>下载的第一步当然是卸载当前系统具有的 vim 了。除此之外,由于 Python2 过于老旧,我选择不支持 Python2 仅支持 Python3 的 vim,因此也将 Python2 卸载。</p> |
449 | <pre><code>sudo apt autoremove vim rvim gvim vim-runtime | 103 | <pre><code class="language-bash">sudo apt autoremove vim rvim gvim vim-runtime |
450 | sudo apt autoremove python2*</code></pre> | 104 | sudo apt autoremove python2*</code></pre> |
451 | <h2 id="做好准备">做好准备</h2> | 105 | <h2 id="做好准备">做好准备</h2> |
452 | <p>为了编译能够支持 python3/rust/perl/lua 等语言的 vim,我们需要安装一些包。</p> | 106 | <p>为了编译能够支持 python3/rust/perl/lua 等语言的 vim,我们需要安装一些包。</p> |
453 | <pre><code>sudo apt install -y git \ | 107 | <pre><code class="language-bash">sudo apt install -y git \ |
454 | libatk1.0-dev \ | 108 | libatk1.0-dev \ |
455 | libcairo2-dev \ | 109 | libcairo2-dev \ |
456 | liblua5.1-0-dev \ | 110 | liblua5.1-0-dev \ |
@@ -470,7 +124,7 @@ sudo apt autoremove python2*</code></pre> | |||
470 | <h2 id="下载源码">下载源码</h2> | 124 | <h2 id="下载源码">下载源码</h2> |
471 | <p>vim 源码可以通过其<a href="https://github.com/vim/vim">GitHub 仓库</a>下载,也可以在其<a | 125 | <p>vim 源码可以通过其<a href="https://github.com/vim/vim">GitHub 仓库</a>下载,也可以在其<a |
472 | href="https://www.vim.org/download.php">官网</a>下载。我选择了前者。</p> | 126 | href="https://www.vim.org/download.php">官网</a>下载。我选择了前者。</p> |
473 | <pre><code>git clone https://github.com/vim/vim | 127 | <pre><code class="language-bash">git clone https://github.com/vim/vim |
474 | 128 | ||
475 | # 后续处理过程都在源码目录下的src目录内进行,因而切换过去 | 129 | # 后续处理过程都在源码目录下的src目录内进行,因而切换过去 |
476 | cd vim/src | 130 | cd vim/src |
@@ -482,7 +136,7 @@ sudo make distclean</code></pre> | |||
482 | <p>vim | 136 | <p>vim |
483 | 的编译过程中,需要先运行<code>configure</code>脚本,该脚本会检查当前系统的环境,并以参数形式接收你需要哪些功能。可以通过<code>./configure --help</code>查看所有可选参数及其功能说明。我选择的参数如下: | 137 | 的编译过程中,需要先运行<code>configure</code>脚本,该脚本会检查当前系统的环境,并以参数形式接收你需要哪些功能。可以通过<code>./configure --help</code>查看所有可选参数及其功能说明。我选择的参数如下: |
484 | </p> | 138 | </p> |
485 | <pre><code>sudo ./configure\ | 139 | <pre><code class="language-bash">sudo ./configure\ |
486 | --with-features=huge \ | 140 | --with-features=huge \ |
487 | --enable-multibyte \ | 141 | --enable-multibyte \ |
488 | --enable-rubyinterp=dynamic \ | 142 | --enable-rubyinterp=dynamic \ |
@@ -522,7 +176,7 @@ sudo make distclean</code></pre> | |||
522 | </p> | 176 | </p> |
523 | <h3 id="编译安装">编译安装</h3> | 177 | <h3 id="编译安装">编译安装</h3> |
524 | <p>编译安装过程简单到无以复加,就几句话的事。</p> | 178 | <p>编译安装过程简单到无以复加,就几句话的事。</p> |
525 | <pre><code># 编译 | 179 | <pre><code class="language-bash"># 编译 |
526 | sudo make | 180 | sudo make |
527 | # 安装 | 181 | # 安装 |
528 | sudo make install</code></pre> | 182 | sudo make install</code></pre> |
@@ -537,7 +191,7 @@ sudo make install</code></pre> | |||
537 | 的配置文件放置在<code>/etc/vim</code>下,这样不论是普通用户还是 root | 191 | 的配置文件放置在<code>/etc/vim</code>下,这样不论是普通用户还是 root |
538 | 用户,都会使用这份文件,保证观感一致。另外,由于该文件位置较远,我选择在<code>~/useful</code>下创建软链接,方便使用。</p> | 192 | 用户,都会使用这份文件,保证观感一致。另外,由于该文件位置较远,我选择在<code>~/useful</code>下创建软链接,方便使用。</p> |
539 | <p>除此之外,出于同样的目的(保证当前用户与 root 用户观感一致),建议将插件也指定一个专门的绝对路径。我放在了<code>/home/player/useful/bundle</code>。</p> | 193 | <p>除此之外,出于同样的目的(保证当前用户与 root 用户观感一致),建议将插件也指定一个专门的绝对路径。我放在了<code>/home/player/useful/bundle</code>。</p> |
540 | <pre><code># 创建软链接 | 194 | <pre><code class="language-bash"># 创建软链接 |
541 | # 我习惯把有用的文件放在~/useful下 | 195 | # 我习惯把有用的文件放在~/useful下 |
542 | mkdir useful | 196 | mkdir useful |
543 | cd useful | 197 | cd useful |
@@ -551,20 +205,17 @@ mkdir bundle</code></pre> | |||
551 | <p>这里原本记录着我的旧版 vim 配置,但随着<a href="https://www.qin-juan-ge-zhu.top/code/linux/httpmyserver.html">http | 205 | <p>这里原本记录着我的旧版 vim 配置,但随着<a href="https://www.qin-juan-ge-zhu.top/code/linux/httpmyserver.html">http |
552 | 浏览服务器文件</a>的完成,再保留旧版然后每隔三四个月更新一次,对于我这种没事就折腾的人来说说,就显得不那么必要了。因此,这里只简单说一下。</p> | 206 | 浏览服务器文件</a>的完成,再保留旧版然后每隔三四个月更新一次,对于我这种没事就折腾的人来说说,就显得不那么必要了。因此,这里只简单说一下。</p> |
553 | <p>配置的整体结构如下:</p> | 207 | <p>配置的整体结构如下:</p> |
554 | <pre><code>/etc/vim | 208 | <pre><code class="language-plaintext">/etc/vim |
555 | ├── vimrc # vim配置文件,负责引入不同的配置模块 | 209 | ├── vimrc # vim配置文件,负责引入不同的配置模块 |
556 | ├── vimrc_origin # 原有配置脚本备份 | 210 | └── vimrcs # 我的配置文件夹,里边是不同的配置模块 |
557 | ├── vimrcs # 我的配置文件夹,里边是不同的配置模块 | 211 | ├── autocmd.vim |
558 | │ ├── autocmd.vim | 212 | ├── codecmd.vim |
559 | │ ├── codecmd.vim | 213 | ├── keybind.vim |
560 | │ ├── keybind.vim | 214 | ├── match.vim |
561 | │ ├── match.vim | 215 | ├── myset.vim |
562 | │ ├── myset.vim | 216 | ├── plugs.vim |
563 | │ ├── plugs.vim | 217 | └── statusline.vim</code></pre> |
564 | │ └── statusline.vim | 218 | <p>我直接把我服务器上的配置文件<a href="https://git.qin-juan-ge-zhu.top/vimrc">放在这里</a>,以供查看。</p> |
565 | ├── vimrc.tiny # 原有脚本,无用 | ||
566 | └── vimscript.vim # 原有脚本,无用</code></pre> | ||
567 | <p>我直接把我服务器上的配置文件<a href="https://file.qin-juan-ge-zhu.top/useful/vim/">放在这里</a>,以供查看。</p> | ||
568 | <p class="time">2023.7.5<br>2023.9.6<br>2024.1.3</p> | 219 | <p class="time">2023.7.5<br>2023.9.6<br>2024.1.3</p> |
569 | <script src="https://www.qin-juan-ge-zhu.top/common/js/comment.js"></script> | 220 | <script src="https://www.qin-juan-ge-zhu.top/common/js/comment.js"></script> |
570 | </div> | 221 | </div> |