Squashed commit of the following:

commit f031b8d76d9bec6ea99ecbb298bc14ef6fa288e0
Author: Donald T <tang.1208@osu.edu>
Date:   Mon May 29 14:55:14 2023 -0400

    .

commit 94f905b7ced8522e63d39f288bcb1f7a4e15cc18
Author: Donald T <tang.1208@osu.edu>
Date:   Sat May 20 00:20:51 2023 -0400

    .

commit f41a8c8c1ac190de2f654b25e73d3ec2a0a2d09d
Author: Donald T <tang.1208@osu.edu>
Date:   Fri May 5 23:24:25 2023 -0700

    .

commit 48b861af7a8a7b32eef2bd41ccce5cd9381c21ed
Author: Donald T <tang.1208@osu.edu>
Date:   Wed May 3 03:32:30 2023 -0400

    .

commit 6be7fb3fd0a8e72f04cd1dc9044b9b072292eaaf
Author: Donald T <tang.1208@osu.edu>
Date:   Wed May 3 03:32:23 2023 -0400

    .

commit bc541b919d7e3173ff33d60fcf4ac235c66d6e63
Author: Donald T <tang.1208@osu.edu>
Date:   Tue May 2 17:01:32 2023 -0400

    .

commit 3e5edf081c9ba0369edc34769f8d9ff411e50ab9
Author: Donald T <tang.1208@osu.edu>
Date:   Tue May 2 03:37:37 2023 -0400

    .

commit 2e18d3ed4740f92931e8b41e1af72fa7bc651345
Author: Donald T <tang.1208@osu.edu>
Date:   Tue May 2 03:06:28 2023 -0400

    .

commit 01027999ef4ea2c556759c113fb02870d76fcfa6
Merge: 29a6e45 46b9814
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon May 1 19:10:05 2023 -0400

    Merge branch 'gitlab' of gitlab.com:tangnachuan1208/dotfiles into gitlab

commit 29a6e452c79bad6ed88f4a43b56f0d1a9b6c8dbc
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon May 1 19:09:43 2023 -0400

    .

commit 46b9814e7f311517cdca863f834fc4422d856479
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon May 1 17:56:39 2023 -0400

    .

commit 80125dd6783241c703403e06b831999779acac55
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon May 1 13:25:02 2023 -0400

    .

commit 0aa1d47e46af507fa2262aae149ec83047a1b359
Author: Donald T <tang.1208@osu.edu>
Date:   Sun Apr 30 00:51:16 2023 -0400

    .

commit 753ea9333c3cf25d910c6c81c34dfc7c9cdeac4b
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 29 20:04:20 2023 -0400

    .

commit 186dbc0731f5d2e918930eb42f554161d002e96d
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 29 19:46:41 2023 -0400

    format

commit a6ecdd9c44f3c113b86b1a244b2ec34cb6c16c31
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 29 19:44:44 2023 -0400

    .

commit 05c8b25e3e629f86a247066169f3215d0f720558
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 29 19:29:32 2023 -0400

    .

commit e82940eca591e182fcbf8ec212baa14d243810e2
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 29 19:07:57 2023 -0400

    .

commit 5d0bf02856ec9ebed7b8a393f723bb473c95576f
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 29 14:59:54 2023 -0400

    .

commit 968f7bdca5affca622f53528178811d39a46ef68
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 29 06:07:02 2023 -0400

    .

commit 19feb7fcaa76edf56e5829db594d3f113cd3f602
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 29 05:55:37 2023 -0400

    .

commit 710ec3d53b02672896690cb9b0544976df575c19
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 29 05:03:38 2023 -0400

    .

commit 05e21d7712705671be001b3376b440ea271d7415
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 29 04:57:08 2023 -0400

    .

commit 13d938b5ce19271a7bbc1428c4e637df40745889
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 29 03:28:14 2023 -0400

    .

commit 739c24b5846feaf18954db45435f3993e6d661b1
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 29 03:21:12 2023 -0400

    .

commit 2cdc9cf1f25788c6e8f9efaf2a368210937d6116
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 29 03:05:17 2023 -0400

    .

commit a25a424efd5d79ba3b2d70efca9c5b75685f852a
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sat Apr 29 02:54:21 2023 -0400

    .

commit c7794f48a76cac0f98749c3f0d8711100f0e18dc
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sat Apr 29 02:48:57 2023 -0400

    .

commit eedf1c88d64ec13356a10ab6ca86b8f5dddfe68e
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sat Apr 29 02:30:52 2023 -0400

    .

commit adbe5512cc7511691540ce47bb381969e39148a4
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sat Apr 29 02:03:11 2023 -0400

    .

commit e6c9b57a498978509cb94f34fef5e9414f3f349c
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sat Apr 29 01:51:39 2023 -0400

    .

commit d88450c7a69c544896ed399138a5e80e9ef3a1f6
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 29 00:53:56 2023 -0400

    .

commit 2c1019cae42e9205e10e582b96737671889cd307
Author: Donald T <tang.1208@osu.edu>
Date:   Fri Apr 28 04:17:23 2023 -0400

    .

commit 03eec51af196432ae9590e3b1f9f3a93348b8fe6
Author: Donald T <tang.1208@osu.edu>
Date:   Fri Apr 28 04:03:40 2023 -0400

    yes

commit 4b62a9ab80475a6b1a1722abf53876c1ff326700
Author: Donald T <tang.1208@osu.edu>
Date:   Fri Apr 28 03:41:36 2023 -0400

    .

commit 59214cd6541637b071c9064060fe16bf5bb27725
Author: Donald T <tang.1208@osu.edu>
Date:   Fri Apr 28 03:22:09 2023 -0400

    .

commit f30a7552d3181d781c3d0d1488844987822b6522
Author: Donald T <tang.1208@osu.edu>
Date:   Fri Apr 28 01:35:18 2023 -0400

    .

commit 3a2d1082e84c37f0c2fee8217796fa4d4499294f
Author: Donald T <tang.1208@osu.edu>
Date:   Fri Apr 28 00:48:17 2023 -0400

    .

commit 520fd153e401ab822f1042ff8376b1e8d8b2ac92
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 27 23:50:09 2023 -0400

    .

commit 7437561bc3ffc3641f45bd76d9ab70aeb469c2f2
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 27 19:28:16 2023 -0400

    .

commit 32a8001f2e39102ed73ee68570d451603ed154b3
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 27 19:20:08 2023 -0400

    .

commit 9652a519b4024d36d87037d6549d3f852a17a1e6
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 27 16:56:54 2023 -0400

    .

commit b12009000ecf4d1db967708aed5947dd9553fb1e
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 27 16:51:59 2023 -0400

    .

commit cf194922c2b24267c5d7397d07dc89b90286acf3
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 27 16:51:00 2023 -0400

    .

commit f4d9203afdb998f0c842118bc88dbf9e8ffe71e0
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 27 14:53:57 2023 -0400

    fast grep done!!

commit 2a176f1b5ec1b3e32af1c12b18ad5ef41f3e60f6
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 27 14:50:43 2023 -0400

    .

commit baeeba23deff9dd80d2a8865e91c1f630e7e7e23
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 27 06:07:00 2023 -0400

    .

commit 586bbf01cf29cb42c8be794b73b73a274d7e4ed3
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 27 05:51:28 2023 -0400

    ag allow partial fuzzy search now

commit 139fdbc6285e68e5a13277877344097480ba5387
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 27 03:41:43 2023 -0400

    add info win

commit a08839510d7329ac28c18f18d598e9f261100880
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 27 02:38:24 2023 -0400

    .

commit 7663230223592f9ad0509b80973542c2928d7771
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 27 02:35:42 2023 -0400

    Revert "."

    This reverts commit 254db14a3118a0f898283f62942f10762405ffc9.

commit 796758bf647d83652b6fffa54fc6e54548488bff
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 27 02:35:21 2023 -0400

    Revert "Revert ".""

    This reverts commit f1bb558ce24d92064219d9282bcc9ba1359aa6ac.

commit f1bb558ce24d92064219d9282bcc9ba1359aa6ac
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 27 02:31:13 2023 -0400

    Revert "."

    This reverts commit 1fc9da602ff45ab72a3b37fb6fd8b2d2b3d88fe5.

commit 254db14a3118a0f898283f62942f10762405ffc9
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Thu Apr 27 02:28:07 2023 -0400

    .

commit 1fc9da602ff45ab72a3b37fb6fd8b2d2b3d88fe5
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 27 01:50:16 2023 -0400

    .

commit b18489c135043b6a4f0b6c0e8eb5b0ddfad10160
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 27 01:46:15 2023 -0400

    hide cursor when having popup

commit 052ee3417392b42c081d1c2be6e249b8db8592ff
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 27 01:10:41 2023 -0400

    add prompt cursor support

commit 38ffb515e51913804c31e8fb872381fbef965e44
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Apr 26 15:14:46 2023 -0400

    .

commit 5cbc177ba5409cb3b0532149df535c8265c370d1
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Apr 26 15:04:49 2023 -0400

    .

commit 25edf4d4cda19d9b628afb4eb3e1dfd828ead7e6
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Apr 26 15:04:00 2023 -0400

    .

commit e57064e2102af2489f4884e48dcc9431723e04fb
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Apr 26 15:02:56 2023 -0400

    .

commit 1571c42fdeba67a27b7f890d462144059c22320a
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Apr 26 14:59:25 2023 -0400

    .

commit 65c7982637b428829724dea1afd217a5ff71e093
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Apr 26 14:56:15 2023 -0400

    .

commit 348d2198a64d3af90b80452fd29ac8fcf89ce4f6
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Apr 26 14:52:28 2023 -0400

    .

commit f3eacf8a9a03dfa1fa2b9c489504aaaeb517bf8b
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Wed Apr 26 14:40:55 2023 -0400

    .

commit 34f7af3e179dadb6be0d4f97ef0a2eb31d02d761
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Apr 26 13:40:17 2023 -0400

    .

commit 8fdcb5692177d7a5742e4974b2859b1c09762dcd
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Apr 26 05:11:10 2023 -0400

    .

commit 3340905398916d441c42454d49e32b766b8d78c3
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Apr 26 04:35:24 2023 -0400

    .

commit 8c9953a1ddf1641b3559672ea847de156da7e395
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Apr 26 04:13:42 2023 -0400

    .

commit 98851e14c76f300ba6045951e1c9b9093af56d72
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Apr 26 03:23:07 2023 -0400

    .

commit d189f8860f11bded35871796165a1af18ccc9c89
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Apr 26 01:39:26 2023 -0400

    .

commit 793a4d13f2503b83dd671ee08aab208151369e63
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Apr 26 01:07:45 2023 -0400

    add reverse menu function

commit 32aacd806a614deca71a43848cda954976db7fcc
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 25 22:55:25 2023 -0400

    .

commit ca0253d34e61746bca92c05a66042d35424ddb52
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 25 18:06:13 2023 -0400

    .

commit 13411243f756f46c6c3171531904edbaf19b0b07
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Tue Apr 25 06:38:25 2023 -0400

    .

commit 62e418f26f80d0e75f30ce9cf7428c418ea6bce9
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 25 14:19:55 2023 -0400

    .

commit a52a2ff769f03e1efff89cbca4d5b929de4e30d4
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 25 04:49:48 2023 -0400

    .

commit b89d69e632c61a2907f978e2f8b32f4ae83347f8
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 25 04:42:17 2023 -0400

    add popup support

commit 4abb92b4a18c9f79c4a529e0309da09631318644
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 25 00:06:33 2023 -0400

    .

commit 0c0aab52ee5e81aa6b7ee9a6a1a8b0379a2b3427
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 25 00:06:07 2023 -0400

    .

commit a6265472178a300bbb80505e59dfebf5ee978dc1
Merge: 78e3485 35aaca1
Author: Donald T <tang.1208@osu.edu>
Date:   Mon Apr 24 04:57:54 2023 -0400

    Merge branch 'gitlab' of gitlab.com:tangnachuan1208/dotfiles into gitlab

commit 78e3485b80adcf20553741c5f48320365f2734b2
Author: Donald T <tang.1208@osu.edu>
Date:   Mon Apr 24 04:57:51 2023 -0400

    .

commit 35aaca10cabc5a8de2482f5654a862c254f69af2
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon Apr 24 04:05:02 2023 -0400

    .

commit 4ff85f84e0fb5c70e275715f684c560e99bc6d25
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon Apr 24 03:15:05 2023 -0400

    .

commit 626e840630457c978dc7cfc67c12412ce19ec7b2
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon Apr 24 02:08:38 2023 -0400

    .

commit 94fe349621b79c60de4bc8aaf51412ed5b6ea60d
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon Apr 24 01:54:18 2023 -0400

    .

commit cafa07ebe88983c16bc9c71052f7406202403b60
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon Apr 24 01:11:27 2023 -0400

    .

commit 860e5524d7b05d7eed4223e71fdc877d833e4906
Author: Donald T <tang.1208@osu.edu>
Date:   Sun Apr 23 15:16:23 2023 -0400

    .

commit 50f23de9e70138aa9aca4fef9bd25fe55762d031
Author: Donald T <tang.1208@osu.edu>
Date:   Sun Apr 23 14:56:29 2023 -0400

    .

commit f2a72b117d0d55c2052dda3b565879b0f1838131
Author: Donald T <tang.1208@osu.edu>
Date:   Sun Apr 23 05:16:23 2023 -0400

    .

commit 97c6a07d009698c16862bf58bb87bd5577abf7e6
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sun Apr 23 03:17:43 2023 -0400

    .

commit ea6c04a1f953779ca78dce9abed7752b1aa78799
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sun Apr 23 02:55:17 2023 -0400

    .

commit cb00739211a8f6475195d69b04af74052faa02a2
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sun Apr 23 02:33:05 2023 -0400

    .

commit a6e0962b0c8015fad840d742e9fd7bfdd713566c
Merge: 6c9f799 615dce2
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sat Apr 22 09:52:03 2023 -0400

    Merge branch 'gitlab' of gitlab.com:tangnachuan1208/dotfiles into gitlab

commit 615dce2e6b85376ab25a75c9c2fa752c6decb43a
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 22 13:59:56 2023 -0400

    .

commit 35c2916a58117bee6c72368142322ff90697948f
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 22 13:42:14 2023 -0400

    .

commit 6c9f7990c943a17536df37e06ac6dfe49a543b36
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sat Apr 22 09:51:55 2023 -0400

    .

commit 474592185b1d15c5e75f80c20bc0bf991e0917e7
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 22 06:07:11 2023 -0400

    .

commit 328baea58d4208b36d2956eb536f1bb1a137fc16
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 22 06:01:41 2023 -0400

    .

commit 441e377dee9694a3c6154a1ff175bacd2ecfcd47
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sat Apr 22 05:24:22 2023 -0400

    .

commit 226bb43ad152f2a7396132294deb8fde0c08bb97
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sat Apr 22 03:13:27 2023 -0400

    .

commit 327fe11db15371c59d0eb885edf93d5d1047c54e
Merge: bd494eb b14a5b8
Author: Donald T <tang.1208@osu.edu>
Date:   Fri Apr 21 13:01:04 2023 -0400

    Merge branch 'gitlab' of gitlab.com:tangnachuan1208/dotfiles into gitlab

commit bd494eb6d2e074aa76f67b553f550ad9e11f9a86
Author: Donald T <tang.1208@osu.edu>
Date:   Fri Apr 21 13:00:57 2023 -0400

    .

commit b14a5b8fc1a0549ce3d6508c73e582043fc7577c
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Fri Apr 21 01:41:18 2023 -0400

    .

commit 74a6c19ba61d4e5674842aded812381cd2526b49
Merge: 8d55b09 bedee86
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 20 11:59:16 2023 -0400

    Merge branch 'gitlab' of gitlab.com:tangnachuan1208/dotfiles into gitlab

commit 8d55b09cf7ca7665f6f8bfccd9cf668e011f5072
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 20 11:59:04 2023 -0400

    .

commit bedee86bd7c32b74ecc685aeddd6280670f6e5a7
Merge: 5c10b61 1369540
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Wed Apr 19 19:51:59 2023 -0400

    Merge branch 'gitlab' of gitlab.com:tangnachuan1208/dotfiles into gitlab

commit 5c10b61a20e45bfeb18b4ae2251c9eb09e0889be
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Wed Apr 19 19:51:54 2023 -0400

    .

commit 13695401c7474ffe9782ea756c0d179cb114da6c
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Apr 19 03:22:05 2023 -0400

    .

commit 2948e2aa670fe89598220f59df6912fa105470b0
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Apr 19 03:05:37 2023 -0400

    .

commit 9da84d3cdfd7ebbc6fc25015b5a51ba340ab1a2c
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Apr 19 03:05:23 2023 -0400

    .

commit 53e69aabc39336a457f629daa96d707b23244c40
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Wed Apr 19 00:55:06 2023 -0400

    .

commit 7b9d98f104ab838103d21aea94a3da5ce2f996ea
Merge: 3511f2d 691adc5
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Tue Apr 18 21:46:11 2023 -0400

    Merge branch 'gitlab' of gitlab.com:tangnachuan1208/dotfiles into gitlab

commit 691adc506755d1607495cc9e65d373ddd86247fc
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 18 21:45:54 2023 -0400

    .

commit 3511f2d70238bc0ff669591417dbf4bf552fc333
Merge: fe17ea1 2a5e926
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Tue Apr 18 21:45:00 2023 -0400

    Merge branch 'gitlab' of gitlab.com:tangnachuan1208/dotfiles into gitlab

commit fe17ea164a6872dc9ac9a1a1360be8a8a3eeab37
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Tue Apr 18 21:44:55 2023 -0400

    .

commit 2a5e926e33e04b95b3af4c7c72d2df4f430e5869
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 18 18:35:18 2023 -0400

    .

commit bb01b10935e24518746d0cc1974cbf40d3bab28e
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Tue Apr 18 12:57:19 2023 -0400

    .

commit b94e1c2a14d771c94567bdc9a2503f57a6c649b3
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Tue Apr 18 12:44:53 2023 -0400

    .

commit a0fabd29b6c31ff70ad2396ac7b1ca52c693f2d2
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 18 03:53:30 2023 -0400

    .

commit 383cc61310d9f07787865294e9fbd8b6007c3c0a
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 18 03:46:23 2023 -0400

    .

commit 2a2bb928e22962ac97959c90a844b0f3fe9786d7
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 18 03:30:50 2023 -0400

    .

commit 5edd588447bdcc8c50f40f9698e7179753c51417
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 18 03:25:46 2023 -0400

    .

commit f01329b49bd05fccabfabf4c3a95e68dab8973ba
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Tue Apr 18 01:25:09 2023 -0400

    .

commit c808517c93a71668b1e9395c8a041c2e208df4e2
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon Apr 17 23:45:11 2023 -0400

    .

commit 4a0390f6b4eff0cacfe8855553ba0d7c9a6d6b39
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon Apr 17 23:43:08 2023 -0400

    .

commit c31b86ed2082cfb315883885164afa89e06ca2f6
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon Apr 17 22:08:14 2023 -0400

    .

commit d9b226e63648612529a7f679024ec323717bb96c
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon Apr 17 21:08:31 2023 -0400

    .

commit b6a00e990e7b9377621838e051822600e7b7026a
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon Apr 17 19:01:11 2023 -0400

    .

commit e2978d17a1160ede53c58090bbb8e5d707d303cf
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon Apr 17 16:51:41 2023 -0400

    .

commit f063a88f479a1e95a2c6bdc6479c0e51169aef85
Merge: d18fddb a432c4d
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon Apr 17 04:10:24 2023 -0400

    Merge branch 'gitlab' of gitlab.com:tangnachuan1208/dotfiles into gitlab

commit a432c4d0f5427cfe91439c73b7dfbdf0afb9abfd
Author: Donald T <tang.1208@osu.edu>
Date:   Mon Apr 17 12:59:29 2023 -0400

    .

commit 0f1f0bd02db0b1ae8c4491594c7d1cfaa5a0a90c
Author: Donald T <tang.1208@osu.edu>
Date:   Mon Apr 17 04:10:50 2023 -0400

    .

commit d18fddb5d103a9e32219a250db5a12040c2e2e94
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon Apr 17 04:10:17 2023 -0400

    .

commit 025d686fa07cc2484842878bfb61086a25232e20
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon Apr 17 03:33:53 2023 -0400

    .

commit 40e6d011a9373ad1c9519271e8b3ef1f039a42ab
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sun Apr 16 16:47:28 2023 -0400

    .

commit b0bfe0db5af9bd5d1dee2cece2354785475bbde5
Author: Donald T <tang.1208@osu.edu>
Date:   Sun Apr 16 14:27:11 2023 -0400

    .

commit 45875076c01911b086cdad37f097ff1bce90c97a
Author: Donald T <tang.1208@osu.edu>
Date:   Sun Apr 16 13:55:01 2023 -0400

    .

commit df0f8ac3d45a4e24ef1d6e9b19be32598fe77430
Author: Donald T <tang.1208@osu.edu>
Date:   Sun Apr 16 13:25:56 2023 -0400

    .

commit 49c8f8193f3d847bd3a4780624a4bdc1ad9fe636
Author: Donald T <tang.1208@osu.edu>
Date:   Sun Apr 16 13:00:45 2023 -0400

    .

commit dc1591c3b82fd921a366d5df3b6023acd435e210
Merge: 1ab8301 ea8066d
Author: Donald T <tang.1208@osu.edu>
Date:   Sun Apr 16 04:16:08 2023 -0400

    Merge branch 'gitlab' of gitlab.com:tangnachuan1208/dotfiles into gitlab

commit 1ab83017bec3c84cd61a2d1932f70367337199e0
Author: Donald T <tang.1208@osu.edu>
Date:   Sun Apr 16 04:16:02 2023 -0400

    .

commit ba9c3f96e41cb1271341c407b771ea3da01ea46e
Author: Donald T <tang.1208@osu.edu>
Date:   Sun Apr 16 04:15:46 2023 -0400

    .

commit ea8066d90f1641b516fb60224763ada2af2a428e
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sat Apr 15 18:06:44 2023 -0400

    .

commit 5cc85602ce355ac341ee69ac6931744a4d252163
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sat Apr 15 03:03:48 2023 -0400

    .

commit fa6493a393c4f61532b91408e6546fd17f587486
Author: Donald T <tang.1208@osu.edu>
Date:   Fri Apr 14 17:17:50 2023 -0400

    .

commit b7937e39049ac61507a95c8e8345a9622c7ace56
Author: Donald T <tang.1208@osu.edu>
Date:   Fri Apr 14 16:22:38 2023 -0400

    .

commit 1fc71a9a93708b2509e47f88ae0e48350a8cb7e2
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Thu Apr 13 22:25:39 2023 -0400

    .

commit 9e6679cbe0fd54db2e5ac2427f2e2ef1193c8578
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Thu Apr 13 01:56:05 2023 -0400

    .

commit 8f0382f9a5e632f55cbafaa4dfe778cfd48e799b
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Apr 12 13:49:20 2023 -0400

    .

commit 020ad452eb38f39bacc9becd519c4deb7bf75200
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Wed Apr 12 01:18:37 2023 -0400

    .

commit a779a3622bfc7cf44ea16aca494c0169508a02de
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Wed Apr 12 00:27:01 2023 -0400

    .

commit 6b2762ec49d24304a70552c76cae6457204c1bd9
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Wed Apr 12 00:06:10 2023 -0400

    .

commit 50228c85aa6d6ccd03a8b10abcc9be259689e22f
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Tue Apr 11 23:04:03 2023 -0400

    .

commit 4f40c2604ddbfa527c7cc414903e65a2e650c8e6
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Tue Apr 11 21:42:30 2023 -0400

    .

commit b59ab4008e4d385853923e6ef8686aeb06016657
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 11 21:18:29 2023 -0400

    .

commit 71e866eae4b1f5277a58574a22112cbbc5ee8217
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 11 21:10:32 2023 -0400

    .

commit c960b981ead6f7a54deda6f5598ba75f11eb2b60
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 11 20:35:47 2023 -0400

    .

commit 7245012bb8a81a2bc81b45576b53c8a40b95b075
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 11 20:35:37 2023 -0400

    .

commit 5414f79cf47236bf052975d58f6f3cfd6f974dae
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 11 19:56:24 2023 -0400

     neovim theme handle linked hi

commit b646b3379ab80aff56174643aa3cf4c2877115c4
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 11 04:42:33 2023 -0400

    .

commit 7c40fed18ee3e867883c097c9654c9953d15f874
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 11 04:33:39 2023 -0400

    .

commit 470e697fc356e173a5ea014539ef8595582a5178
Merge: 1a033ed 540e599
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 11 04:07:13 2023 -0400

    Merge branch 'gitlab' of gitlab.com:tangnachuan1208/dotfiles into gitlab

commit 1a033ed725625e45a9d6d6e7f725e769c05313f2
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 11 04:07:09 2023 -0400

    .

commit 540e599ba85869fe236c8c1a9ef2729ace1a9a60
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Tue Apr 11 03:28:57 2023 -0400

    .

commit 353baed95808a186b1c88bb19a253dddd58636ff
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon Apr 10 16:09:51 2023 -0400

    .

commit 2646334fca2f50321c1e722d9f4902b23d68e03d
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon Apr 10 14:05:13 2023 -0400

    .

commit f03e8c05e2df0012e5b818847bd5055f226a16fd
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon Apr 10 05:58:25 2023 -0400

    .

commit 425c4726611b41bcc06310228d53b32f4b2c4ff3
Author: Donald T <tang.1208@osu.edu>
Date:   Mon Apr 10 13:04:29 2023 -0400

    .

commit 58987e779b5b262e508bdb0fcfe64d9ac8260a34
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon Apr 10 05:05:02 2023 -0400

    .

commit acea1d24abd1c8944c57a7b8cf42d83c268ad8a6
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon Apr 10 04:24:11 2023 -0400

    .

commit aae699d87bb779c08ca0ee9d753591950e2e1ded
Author: Donald T <tang.1208@osu.edu>
Date:   Mon Apr 10 01:16:38 2023 -0400

    .

commit 6c9a99677b547a51058b20935aaa000eaa0b8bfe
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sun Apr 9 20:51:34 2023 -0400

    .

commit d3be402926167053f93ee6e73157286c34c9b96e
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sun Apr 9 17:13:17 2023 -0400

    .

commit 3467157ffc607f2f25eca1937979fd9e3f844991
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sun Apr 9 17:02:07 2023 -0400

    .

commit a7f0bf2cf8c23e993c520556ab9d56992620a7ef
Author: Donald T <tang.1208@osu.edu>
Date:   Sun Apr 9 14:15:45 2023 -0400

    .

commit 011f56acb8d952df923ed268099c59dec4550b05
Author: Donald T <tang.1208@osu.edu>
Date:   Sun Apr 9 12:40:49 2023 -0400

    .

commit a8100759f84aff64d137b0347f3ee1a13735563c
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sun Apr 9 01:58:34 2023 -0400

    .

commit 937655d11ff4dfb5f53f000726d90ad23c18001f
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sat Apr 8 21:15:53 2023 -0400

    .

commit 5f028a3fdac8bf999b323eae1687d5e9cd90c582
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sat Apr 8 18:59:57 2023 -0400

    .

commit 0a8c4d2c36bb32244ae8c73770be97cf9544d6ce
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 8 15:34:24 2023 -0400

    .

commit 6dc51cd6ec29277a2a310a12c8a5e531b2fc1cbf
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 8 12:55:56 2023 -0400

    .

commit cdb43ca867fdbaf9590a61d7e964135bf1fbb446
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 8 02:54:41 2023 -0400

    .

commit 4950f3f01ed0fcfb0ec65040c5c933e176837812
Author: Donald T <tang.1208@osu.edu>
Date:   Fri Apr 7 02:27:05 2023 -0400

    .

commit 42a046c3bd3eb49360814c589da0699e5b55abd2
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 6 22:20:06 2023 -0400

    .

commit 659febb83e50b8248d6d11d81ca93e8602cc8bc8
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 6 18:49:28 2023 -0400

    .

commit 6d9503b24c23fa2d471b6c6411c61fc39f227147
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 6 01:59:15 2023 -0400

    .

commit add1eb8588f0d713bf606d8630f13e136aa2b629
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 6 01:59:07 2023 -0400

    .

commit 5e742f86d4b66950aabe4db5de3170d155e2651f
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Apr 6 01:31:03 2023 -0400

    fix: non bottom windowns' fillchars

commit a5106e1f03272f1a57b53f00700e49eee95e16fa
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Apr 5 13:03:17 2023 -0400

    .

commit 015d0777ded7d5dcbb2621a58ce00eca0f76a35c
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 4 13:48:13 2023 -0400

    .

commit ae4c58b44149e8abe20c930b312c95385181ff8c
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 4 13:21:51 2023 -0400

    .

commit 88e20f1483f263a08a9031a6f65caa25bc73a564
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 4 13:21:41 2023 -0400

    .

commit ac32272023fd5e0fe236f7c1ea5fde1442e15ee3
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Apr 4 05:41:40 2023 -0400

    .

commit 30da5d0a4b4bfd180f40d3d27e2f68553fcd6f0a
Author: Donald T <tang.1208@osu.edu>
Date:   Mon Apr 3 18:20:15 2023 -0400

    add global statusline

commit 1cb22a5a558b94506e024b396ef96c39f25b54d1
Author: Donald T <tang.1208@osu.edu>
Date:   Sun Apr 2 05:14:01 2023 -0400

    .

commit a266737bc28d108efa6b6d9377bebafbb44a4cc6
Author: Donald T <tang.1208@osu.edu>
Date:   Sun Apr 2 02:18:17 2023 -0400

    add demo

commit 33c6f5dc475f2a0b02a72f64c954204c4abeb0bd
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 1 20:45:23 2023 -0400

    .

commit 888f8aab0a34ca47d2129b6d1843e44ad8fe419d
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 1 18:47:35 2023 -0400

    .

commit ea82974dc10729396e0a80a52f413140f39d7d9b
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 1 18:29:14 2023 -0400

    .

commit 894f37a2073fa6314e6fc32d07ff1337376d8c40
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sat Apr 1 16:28:55 2023 -0400

    add trace.vim

commit e280e7a1d60cae9fd6ec173f6c77ffacb47a5328
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Sat Apr 1 16:17:02 2023 -0400

    .

commit ef3e51bbe50211b4f3db4f42bfde4fac1547b277
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 1 15:19:20 2023 -0400

    .

commit 6e7f86b535bf0eced8f13d0f88efd5178604ddd5
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 1 15:15:35 2023 -0400

    .

commit 9e942741c54ed648f3b15bf587b62118be9b5373
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 1 14:40:32 2023 -0400

    .

commit a1a4be8f93fa32f2691087796c4d1c545761258b
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 1 14:38:37 2023 -0400

    .

commit 90a8f6add2e8bd8c973992145c831c2e2688ccb9
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 1 14:35:24 2023 -0400

    .

commit 4100fb3b815dce519c7b305e6b63897082bacdd8
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 1 05:40:59 2023 -0400

    .

commit d581fb1c276c355bf85f73689b33d97ef0c5ce20
Author: Donald T <tang.1208@osu.edu>
Date:   Sat Apr 1 05:11:14 2023 -0400

    .

commit 30a5a319d690665e106fb074750da87da0fc17d9
Author: Donald T <tang.1208@osu.edu>
Date:   Fri Mar 31 13:09:15 2023 -0400

    .

commit 0f61b98009dd804f9e00c92909d5f52143f66143
Author: Donald T <tang.1208@osu.edu>
Date:   Fri Mar 31 03:47:44 2023 -0400

    .

commit e7cd4991139f3a27f5db40cc9034bf44672a9517
Author: Donald T <tang.1208@osu.edu>
Date:   Fri Mar 31 02:56:40 2023 -0400

    win compatibility

commit 179ac4f4057c0a6b88e5abde14414d0a4c785006
Author: Donald T <tang.1208@osu.edu>
Date:   Fri Mar 31 02:09:51 2023 -0400

    win compatibility

commit 212e64eaebc7ce59866f537b41b42a22cc2212c1
Author: Donald T <tang.1208@osu.edu>
Date:   Fri Mar 31 01:01:33 2023 -0400

    win compatibility

commit 21e06398719f2b363e8f48ae72a7017ffe5912a7
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Mar 30 19:37:04 2023 -0400

    .

commit 79660071b4d68f9e07a71179e77b2e994e5ca7df
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Mar 30 16:11:00 2023 -0400

    fix airline coc extension not updated properly

commit bd24de81a9bb8d2fb29ef48908b3c26c5f246550
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Mar 30 14:22:47 2023 -0400

    add my own transparent method

commit 15c3fc74c329ba256d36b0056756132c5ce296b8
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Mar 30 04:58:41 2023 -0400

    .

commit 2405ae16e8cc26f51a641d7a71a7ab5d7972b1e6
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Mar 30 02:50:17 2023 -0400

    .

commit f6d251b4ced41b855737fe713f2e18d98af988d5
Author: Donald T <tang.1208@osu.edu>
Date:   Thu Mar 30 00:00:48 2023 -0400

    .

commit 67c25293ddb51686e34a76c7437752de244c8e12
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Mar 29 23:48:17 2023 -0400

    .

commit 3bba91fdb46d23b50e9ef9805274ab9583f53572
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Mar 29 13:15:00 2023 -0400

    .

commit 22300562576222261d3b75f03fbd9ca6b17c5d7a
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Mar 29 12:35:50 2023 -0400

    .

commit a42a2ccfa022070524a8b4aa5c3eaed884c2826f
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Mar 29 03:51:15 2023 -0400

    imporve preview script to support cat

commit d69f83aaa0af5310e639af72c0d5d9831a3559fe
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Mar 29 01:24:50 2023 -0400

    .

commit 29fbf97bbbd636f569b6ca366ce5c8d24bfb537e
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Mar 29 01:19:37 2023 -0400

    move theme related function

commit be7844c3078596bbd29548e7adad8fa4eee707e1
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Mar 29 00:40:10 2023 -0400

    move more functions to utils

commit 4f54fd428a8fbbf507324feb5390f84d86adf0a1
Author: Donald T <tang.1208@osu.edu>
Date:   Wed Mar 29 00:01:29 2023 -0400

    add config for coc-fzf

commit b8f095f7c7cfa55f0963a3c0f580896c7a3f50bc
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Mar 28 22:44:53 2023 -0400

    move functions

commit 8e8610f5214defae8fd7b7cd7e329278a23a7469
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Mar 28 01:48:36 2023 -0400

    .

commit 2797153564ac377c5c39e3f34a5736cda5530b51
Author: Donald T <tang.1208@osu.edu>
Date:   Tue Mar 28 00:54:26 2023 -0400

    .

commit 90e1382038b88a7807ec09fc23dbc38fb5707d39
Author: Donald T <tang.1208@osu.edu>
Date:   Mon Mar 27 22:50:23 2023 -0400

    .

commit 37681413115c5e746c25e252ee2ef98addfe5b9d
Author: Donald T <tang.1208@osu.edu>
Date:   Mon Mar 27 22:36:21 2023 -0400

    .

commit 839816c3eb10093ed3a1200f43470b4841273a3b
Author: Donald T <tang.1208@osu.edu>
Date:   Mon Mar 27 20:19:20 2023 -0400

    fix path issue

commit 5581395825ca4876e67abf8cdc2567d431a3c1cb
Author: Donald T <tang.1208@osu.edu>
Date:   Mon Mar 27 19:52:13 2023 -0400

    .

commit 141b58a12b8f1bcd43db6902752c402e02dbd371
Author: Donald T <tang.1208@osu.edu>
Date:   Mon Mar 27 19:52:01 2023 -0400

    .

commit c0de4df26f83cebd99d6a65a9ad42e4de086c08a
Author: Donald T <tang.1208@osu.edu>
Date:   Mon Mar 27 19:16:21 2023 -0400

    add fish config and imporve install script

commit c7313fd820c0cd0ad7727fda98c417f62c6c23de
Author: Donald T <tang.1208@osu.edu>
Date:   Mon Mar 27 18:08:49 2023 -0400

    fix bugs

commit 5de8083028596f91da45e6d2d7abcc40f7bdb6ad
Author: Donald T <tang.1208@osu.edu>
Date:   Mon Mar 27 18:00:02 2023 -0400

    fix ariline bug

commit 057a255478d3ee08095f092cf671cd1fbdfc916d
Author: Donald T <tang.1208@osu.edu>
Date:   Mon Mar 27 16:07:07 2023 -0400

    .

commit 13af63e75a4cd1dce1407db8c09ca6b7b74dcd7f
Author: Donald T <tang.1208@osu.edu>
Date:   Mon Mar 27 15:36:15 2023 -0400

    .

commit 1969e30302e1fc2a84293bd9d3e29d98c0a2abec
Author: Donald T <tang.1208@osu.edu>
Date:   Mon Mar 27 15:24:47 2023 -0400

    .

commit fd7a79c760ef9942d033eb206c17148aa11ddc9b
Author: Donald T <tang.1208@osu.edu>
Date:   Mon Mar 27 14:06:49 2023 -0400

    .

commit 7f39e43e8e58139c1a55e889b8c525f767239b79
Author: Nachuan Tang <tangnachuan1208@gmail.com>
Date:   Mon Mar 27 04:07:45 2023 -0400

    fix fzf preview not working in windows

commit 2b3784d04bbb1c1412c5e46c35d4825ef492196a
Author: Nachuan Tang <tang.1208@osu.edu>
Date:   Mon Mar 27 03:02:05 2023 -0400

    .

commit 9c5ee3626d7f9416ec243c3fcb2d5b41102a1792
Author: Nachuan Tang <tang.1208@osu.edu>
Date:   Sun Mar 26 20:14:31 2023 -0400

    .

commit d19b6b79d898a40385553d02f64aa3690e5aeb62
Author: Nachuan Tang <tang.1208@osu.edu>
Date:   Sun Mar 26 06:11:39 2023 -0400

    .

commit 49c77cc5135f5578b2268b4819311c45f6a00702
Author: Nachuan Tang <tang.1208@osu.edu>
Date:   Sun Mar 26 04:52:33 2023 -0400

    .

commit 870f45a06cb849e0d91b6dac9ce1da8d3f2f1f7e
Author: Nachuan Tang <tang.1208@osu.edu>
Date:   Sun Mar 26 04:50:01 2023 -0400

    structure change

commit 251a36fbd66b861dc2a96a403a73dcdc20f0289c
Author: Nachuan Tang <tang.1208@osu.edu>
Date:   Sun Mar 26 02:38:05 2023 -0400

    .
This commit is contained in:
Nachuan Tang
2023-06-11 14:59:34 -04:00
parent 2bd7717854
commit 82474eb7bb
88 changed files with 4346 additions and 1999 deletions
@@ -0,0 +1,6 @@
if utils#hasplug('Copilot.vim')
" imap <expr> <C-n> <Plug>(copilot-next)
" imap <expr> <C-p> <Plug>(copilot-prev)
endif
@@ -0,0 +1,8 @@
if utils#hasplug('coc-fzf')
let g:coc_fzf_preview = 'right:50%'
nnoremap <silent> <leader>fs :CocFzfList outline<CR>
let s:preview_exe = expand(g:dotvimdir.'/bin/preview.py')
let g:coc_fzf_opts = ['--border-label', 'Coc Outlines', '--border-label-pos', '9', '--no-scrollbar', '--no-hscroll', '--no-separator']
endif
@@ -0,0 +1,184 @@
if utils#hasplug('coc.nvim')
" let g:coc_global_extensions = ['coc-pyright', 'coc-tsserver', 'coc-vimlsp',
" \ 'coc-marksman']
" for tabline info
" coc-sumneko-lua offers autocomplete for neovim lua api
let g:coc_global_extensions = ['coc-nav', 'coc-sumneko-lua']
" warning that coc work best for vim >= 8.3
let g:coc_disable_startup_warning = 1
let g:coc_data_home = g:vim_dir . '/coc'
let g:coc_config_home = g:vim_dir . '/coc'
" Use <c-space> to trigger completion.
if has('nvim')
inoremap <silent><expr> <c-space> coc#refresh()
else
inoremap <silent><expr> <c-@> coc#refresh()
endif
set updatetime=300
" Make <CR> auto-select the first completion item and notify coc.nvim to
" format on enter, <cr> could be remapped by other vim plugin
inoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm()
\: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
" GoTo code navigation.
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)
" Use K to show documentation in preview window.
nnoremap <silent> K :call <SID>show_documentation()<CR>
function! s:show_documentation()
if CocAction('hasProvider', 'hover')
call CocActionAsync('doHover')
else
call feedkeys('K', 'in')
endif
endfunction
" Symbol renaming.
nmap <leader>rn <Plug>(coc-rename)
" Formatting selected code.
xmap <space>f <Plug>(coc-format-selected)
nmap <space>f <Plug>(coc-format-selected)
augroup mygroup
autocmd!
" Setup formatexpr specified filetype(s).
autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected')
" Update signature help on jump placeholder.
autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')
augroup end
" Apply AutoFix to problem on the current line.
nmap <leader>qf <Plug>(coc-fix-current)
" Remap <C-f> and <C-b> for scroll float windows/popups.
if has('nvim-0.4.0') || has('patch-8.2.0750')
nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>"
inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>"
vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
endif
" Mappings for CoCList
" Show all diagnostics.
nnoremap <silent><nowait> <space>a :<C-u>CocList diagnostics<cr>
" Manage extensions.
" nnoremap <silent><nowait> <space>e :<C-u>CocList extensions<cr>
" Show commands.
nnoremap <silent><nowait> <space>c :<C-u>CocList commands<cr>
" Find symbol of current document.
nnoremap <silent><nowait> <space>o :<C-u>CocList outline<cr>
" Search workspace symbols.
nnoremap <silent><nowait> <space>s :<C-u>CocList -I symbols<cr>
" Do default action for next item.
nnoremap <silent><nowait> <space>j :<C-u>CocNext<CR>
" Do default action for previous item.
nnoremap <silent><nowait> <space>k :<C-u>CocPrev<CR>
" Resume latest coc list.
nnoremap <silent><nowait> <space>p :<C-u>CocListResume<CR>
"COC LSP SETTING
let g:coc_user_config = {
\ 'suggest.noselect': v:true,
\ 'suggest.enablePreselect': v:false, }
call coc#config("java.jdt.ls.vmargs", '-javaagent:' . g:dotfiledir . '/config/coc/java/lombok-1.18.26.jar')
call coc#config("java.jdt.ls.lombokSupport.enabled", v:false)
call coc#config("java.inlayHints.parameterNames.enabled", v:false)
call coc#config("inlayHint.enable", v:false)
if has('nvim')
" nvim has tree-sitter
call coc#config("semanticTokens.enable", v:false)
else
call coc#config("semanticTokens.enable", v:true)
endif
call coc#config("sumneko-lua.enableNvimLuaDev", v:true)
for section in ['suggest', 'diagnostic', 'signature', 'hover']
call coc#config(section.'.floatConfig.border', v:true)
call coc#config(section.'.floatConfig.rounded', v:true)
call coc#config(section.'.floatConfig.highlight', 'Normal')
" transparent setting (only for neovim)
" call coc#config(section.'.floatConfig.winblend', 6)
endfor
function! CocHighlight()
hi! CocErrorHighlight guifg=#E74C3C term=underline,bold gui=underline,bold cterm=underline,bold
hi! CocErrorSign guifg=#E74C3C
hi! CocWarningHighlight guifg=#E74C3C term=underline gui=underline cterm=underline
hi! CocWarningSign guifg=#E67E22
hi CocInfoHighlight term=underline gui=underline cterm=underline
hi CocHintHighlight term=underline gui=underline cterm=underline
hi CocUnusedHighlight term=underline gui=underline cterm=underline
endfunction
call theme#addCleanBg(['CocWarningSign', 'CocErrorSign'])
augroup CocHighlight
autocmd!
autocmd ColorScheme * call CocHighlight()
augroup END
function! Breadcrumbs()
if ! exists('b:coc_nav')
return ''
endif
let items = b:coc_nav
" let t = '  '
let t = ' '
let c = 0
for obj in items
let hi = obj['highlight']
let name = obj['name']
if c == 0
let t ..= '%#'.. hi ..'#' .. name .. '%#Normal#'
else
let t ..= '  %#'.. hi ..'#' .. name .. '%#Normal#'
endif
let c += 1
endfor
return t
endfunction
func! s:sigbar_enable()
set tabline=%#Normal#🌠%{%Breadcrumbs()%}
set showtabline=2
endfunc
func! s:sigbar_disable()
set tabline=
set showtabline=1
endfunc
" set tabline=%=%#Normal#%=%{%Breadcrumbs()%}
" set showtabline=2
let sigbar_opt = {
\ 'desc': 'Show function signature bar',
\ 'enablefunc': function('s:sigbar_enable'),
\ 'disablefunc': function('s:sigbar_disable'),
\ 'isEnabled': 0,
\ }
call options#add('signature bar', sigbar_opt)
call theme#addTransGroup(['CocFloating'])
endif
@@ -0,0 +1,3 @@
if utils#hasplug('coc.nvim')
let g:codi#virtual_text = 0
endif
@@ -0,0 +1,4 @@
if utils#hasplug('ctrlp.vim')
let g:ctrlp_map = '<leader>ff'
endif
@@ -0,0 +1,32 @@
if utils#hasplug('everforest')
let g:everforest_better_performance = 1
let g:everforest_background = 'hard'
" let g:everforest_enable_italic = 1
function! Everforest_trans_enable()
let g:everforest_transparent_background = 2
colorscheme everforest
call theme#setStlColor(&background, 'everforest')
" hack to fix caret characters appearing in the statusline when StatusLine
" and StatusLineNC has same highlight(https://vi.stackexchange.com/questions/15873/carets-in-status-line)
hi StatusLine guifg=#d3c6aa ctermfg=223
endfunction
function! Everforest_trans_disable()
let g:everforest_transparent_background = 0
colorscheme everforest
call theme#setStlColor(&background, 'everforest')
endfunction
function! CB_dark_tb_enable_everforest()
call Everforest_trans_enable()
endfunction
function! CB_light_tb_enable_everforest()
call Everforest_trans_enable()
endfunction
function! CB_dark_tb_disable_everforest()
call Everforest_trans_disable()
endfunction
function! CB_light_tb_disable_everforest()
call Everforest_trans_disable()
endfunction
endif
@@ -0,0 +1,121 @@
if utils#hasplug("fzf") && utils#hasplug("fzf.vim")
" [Buffers] Jump to the existing window if possible
let g:fzf_buffers_jump = 1
"let $FZF_DEFAULT_COMMAND='find . \( -name node_modules -o -name .git \) -prune -o -print'
" - CTRL-/ will toggle preview window.
let g:fzf_preview_window = ['right:50%']
hi! fzfborderhi term=bold cterm=bold ctermbg=236 gui=bold guibg=#272c42
hi! fzfqueryhi term=underline cterm=underline gui=underline
let g:fzf_force_termguicolors = 1
if g:os != 'Windows'
let $FZF_DEFAULT_COMMAND = "find . -type f -not -path '*/\.git/*'"
endif
let s:preview_exe = expand(g:dotvimdir.'/bin/preview.py')
let s:color_opts = ['--color', 'gutter:-1,bg+:-1,bg:-1,preview-bg:-1,preview-fg:-1,fg+:-1']
" check if ripgrep is installed
function! FzfRg()
let s:previewcmd = join([utils#get_usable_py(), s:preview_exe, &bg, '{}'])
if ! executable('rg')
let cmd = 'grep -R --line-number --exclude-dir=".git;.svn" --color=always -- '.shellescape('')
else
let cmd = "rg --column --line-number --no-heading --color=always --smart-case -- ".shellescape('')
endif
let options = s:color_opts + ['--border-label', 'Grep', '--border-label-pos', '9', '--no-scrollbar',
\ '--no-hscroll', '--no-separator', '--preview', s:previewcmd]
let with_preview = fzf#vim#with_preview()
if len(with_preview) == 0
let with_preview = {'options':['--preview-window','right:50%' ] + options}
else
" make fzf preview repect colorsheme
let with_preview.options = with_preview.options[:-3] + options
endif
call fzf#vim#grep(cmd, 1, with_preview, 0)
endfunction
function! FzfFiles(...)
let s:previewcmd = join([utils#get_usable_py(), s:preview_exe, &bg, '{}'])
let options = s:color_opts + ['--border-label', 'Files', '--border-label-pos', '9', '--no-scrollbar',
\ '--no-hscroll', '--no-separator', '--preview', s:previewcmd]
let with_preview = fzf#vim#with_preview()
if len(with_preview) == 0
" in windows with_preview return empty dict
let with_preview = {'options':['--preview-window','right:50%' ] + options}
else
let with_preview.options = with_preview.options[:-3] + options
endif
let dir = ''
if a:0 >= 1 && isdirectory(expand(a:1))
let dir = a:1
endif
call fzf#vim#files(dir, with_preview, 0)
endfunction
function! FzfColorSelect(color_name)
call theme#setColor(&bg, a:color_name)
endfunction
function! FzfAirlineColorSelect(color_name)
call theme#setStlColor(&background, a:color_name)
endfunction
let $FZF_DEFAULT_OPTS='--color=' . s:color_opts[1]
function! FzfHelpTags()
let s:previewcmd = join([utils#get_usable_py(), s:preview_exe, &bg, '{}'])
let options = s:color_opts + ['--border-label', 'Files', '--border-label-pos', '9', '--no-scrollbar',
\ '--no-hscroll', '--no-separator']
let with_preview = fzf#vim#with_preview({ "placeholder": "--tag {2}:{3}:{4}" })
if len(with_preview) == 0
" in windows with_preview return empty dict
let with_preview = {'options':['--preview-window','right:50%' ] + options}
else
let with_preview.options = with_preview.options + options
endif
call fzf#vim#helptags(with_preview, 0)
endfunction
let s:optionmap = {}
let s:feedfzf = []
func! s:optioncb(str)
call options#toggle(s:optionmap[a:str])
endfunc
func! FzfOptions()
let s:feedfzf = []
let s:optsource = options#getAll()
for e in s:optsource
let s:optionmap[e[1]] = e[0]
call add(s:feedfzf, e[1])
endfor
call fzf#run(fzf#wrap({
\ 'source': s:feedfzf,
\ 'sink': function('s:optioncb'),
\ 'options': ['--border-label', 'Options'],
\ 'window': { 'width': 0.4, 'height': 0.6 }
\ }))
endfunc
" noremap <leader>fo :call FzfOptions()<CR>
" noremap <leader>fr :call FzfRg()<CR>
" noremap <leader>ff :call FzfFiles()<CR>
noremap <leader>fh :call FzfHelpTags()<CR>
" noremap <leader>fb :BLines<CR>
noremap <leader>fu :call FzfFiles('~')<CR>
if utils#hasplug('fzf-color-preview')
let g:FzfColorComfirmCb = function('FzfColorSelect')
let g:FzfAirlineComfirmCb = function('FzfAirlineColorSelect')
noremap <leader>fa :AirlinePreview<CR>
noremap <leader>fc :ColorsPreview<CR>
else
noremap <leader>fc :Colors<CR>
endif
endif
@@ -0,0 +1,16 @@
if utils#hasplug('goyo.vim')
nnoremap <leader><leader>g :Goyo<CR>
let g:goyo_width= floor(&co * 0.65)
function! s:fix()
" resize the goyo after being messed up by other plugins
au BufEnter * if winnr('$') == '5' | exe "normal \<c-w>=" | endif
endfunction
augroup GoyoAu
au!
augroup END
autocmd User GoyoEnter au GoyoAu BufEnter * if winnr('$') == '5' | exe "normal \<c-w>=" | endif
autocmd User GoyoLeave augroup GoyoAu | au! | augroup END
endif
@@ -0,0 +1,5 @@
if utils#hasplug('indentLine')
let g:indentLine_char = '│'
let g:indentLine_setConceal = 0
endif
@@ -0,0 +1,136 @@
" giveup
if utils#hasplug('lightline.vim')
set noshowmode
set laststatus=2
" enable bufferline
" let g:bufferline_echo = 1
let g:bufferline_inactive_highlight = 'Search'
let g:bufferline_active_highlight = 'Search'
let g:bufferline_forbided_col = 32
let g:lightline = {
\ 'colorscheme': 'wombat',
\ 'active': {
\ 'left': [ [ 'mode'],
\ [ 'bufferline'] ],
\ 'right': [['lineinfo'], ['cocstatus']],
\ },
\ 'inactive': {
\ 'left': [],
\ 'right': [],
\ },
\ 'component_expand': {
\ 'bufferline': 'BufferlineStr',
\ },
\ 'component_function': {
\ 'cocstatus': 'AirlineCocStatus',
\ },
\ }
function! s:restore()
let g:lightline.active = {
\ 'left': [ [ 'mode'],
\ [ 'bufferline'] ],
\ 'right': [['lineinfo'], ['cocstatus']],
\ }
call lightline#init()
call lightline#update()
endfunction
let s:special_ft = ['nerdtree', 'vista']
let s:special_bt = ['nofile']
function! s:lightlineInit()
let g:lightline.active = {
\ 'left': [],
\ 'right': [],
\ }
call lightline#init()
call lightline#update()
echom 'hello'. &bt
autocmd WinLeave * ++once call s:restore()
endfunction
" \ 'bufferline': 'lightline#bufferline#buffers'
augroup Lightline
autocmd!
" autocmd BufWinEnter * call s:lightlineInit()
" autocmd WinNew * call s:funck()
autocmd FileType nerdtree call s:lightlineInit()
" autocmd BufWritePost,TextChanged,TextChangedI,BufNew,BufEnter * call lightline#update()
augroup END
function! BufferlineStr()
call bufferline#get_echo_string()
let s = bufferline#get_status_string()
return s
endfunction
function! s:lightline_update()
if !exists('g:loaded_lightline')
return
endif
try
if g:colors_name =~# 'wombat\|solarized\|landscape\|jellybeans\|seoul256\|Tomorrow'
let g:lightline.colorscheme =
\ substitute(substitute(g:colors_name, '-', '_', 'g'), '256.*', '', '')
call lightline#init()
call lightline#colorscheme()
call lightline#update()
endif
catch
endtry
endfunction
augroup LightlineColorscheme
autocmd!
autocmd ColorScheme * call s:lightline_update()
augroup END
function! AirlineCocStatus()
if ! exists('*CocAction')
return
endif
let loading = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"]
try
let result = CocAction('services')
catch
" call timer_start(200, {->execute('AirlineRefresh')})
return 'no coc '
endtry
let state = ''
let id = ''
for e in result
if e['languageIds'][0] == &ft
let state = e['state']
let id = e['id']
endif
endfor
if id == ''
return 'no lsp '
endif
" messy way to get time in millisecond in vim
let time = float2nr(str2float(reltime()->reltimestr()[4:]) * 1000)
let speed = 800
let loadidx = time % speed
let msg = id
if state == "starting"
if ! exists('s:cocstatustimer') || len(timer_info(s:cocstatustimer)) == 0
let s:cocstatustimer = timer_start(100, {->execute('AirlineRefresh')}, {'repeat': 800})
endif
return msg . " " . loading[loadidx/(speed/10)] . " "
elseif state == "running"
if exists('s:cocstatustimer')
call timer_stop(s:cocstatustimer)
unlet s:cocstatustimer
endif
return msg . " ✔ "
endif
return ''
endfunction
endif
@@ -0,0 +1,13 @@
if utils#hasplug('minimap.vim')
nnoremap <silent> mm :MinimapToggle<CR>
let g:minimap_highlight_search = 1
let g:minimap_git_colors = 1
let g:minimap_enable_highlight_colorgroup = 1
let g:minimap_block_filetypes = ['fugitive', 'nvim-tree', 'tagbar', 'fzf', 'telescope', 'NvimTree', 'nerdtree']
let g:minimap_block_buftypes = ['help', 'nerdtree', 'nofile', 'nowrite', 'quickfix', 'terminal', 'prompt', 'NvimTree']
let g:minimap_close_filetypes = ['startify', 'netrw', 'vim-plug', 'NvimTree']
let g:minimap_range_color = 'Visual'
let g:minimap_cursor_color = 'Cursor'
endif
@@ -0,0 +1,53 @@
if utils#hasplug('nerdtree')
if utils#hasplug('vim-nerdtree-syntax-highlight')
let g:NERDTreeLimitedSyntax = 1
endif
let g:NERDShutUp=1
" work around for nerdtree bug: https://github.com/preservim/nerdtree/issues/1321
let g:NERDTreeMinimalMenu = v:true
let g:NERDTreeMinimalUI = v:true
function! NERDTreeFindToggle()
let has_nerdtree = 0
let winfo = getwininfo()
for obj in winfo
let bufnr = obj['bufnr']
let ft = getbufvar(bufnr, '&filetype')
if ft == 'nerdtree'
let has_nerdtree = 1
break
endif
endfor
if has_nerdtree
:NERDTreeClose
else
" we cannot use NERDTreeFind on startify as it is not a file
if &ft == 'startify' || &ft == ''
:NERDTreeToggle
else
:NERDTreeFind
" NERDTreeToggleVCS
endif
endif
endfunction
nnoremap <silent> <leader>e :call NERDTreeFindToggle()<CR>
"let NERDTreeShowBookmarks=1
let NERDTreeChDirMode = 0
let NERDTreeQuitOnOpen = 1
let NERDTreeMouseMode = 2
let NERDTreeShowHidden = 1
" remapping
let g:NERDTreeMapOpenExpl = ''
if utils#hasplug('vim-devicons') || utils#hasplug('nerdfont.vim')
let NERDTreeDirArrowCollapsible = ''
let NERDTreeDirArrowExpandable = ''
else
" let NERDTreeDirArrowCollapsible = ''
" let NERDTreeDirArrowExpandable = ''
endif
" Exit Vim if NERDTree is the only window remaining in the only tab.
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif
endif
@@ -0,0 +1,24 @@
if utils#hasplug('papercolor-theme')
function! CB_dark_tb_enable_PaperColor()
let g:PaperColor_Theme_Options = {
\ 'theme': {'default.dark': { 'transparent_background': 1 }}}
colorscheme PaperColor
endfunction
function! CB_light_tb_enable_PaperColor()
let g:PaperColor_Theme_Options = {
\ 'theme': {'default.light': { 'transparent_background': 1 }}}
colorscheme PaperColor
endfunction
function! CB_dark_tb_disable_PaperColor()
let g:PaperColor_Theme_Options = {
\ 'theme': {'default.dark': { 'transparent_background': 0 }}}
colorscheme PaperColor
endfunction
function! CB_light_tb_disable_PaperColor()
let g:PaperColor_Theme_Options = {
\ 'theme': {'default.light': { 'transparent_background': 0 }}}
colorscheme PaperColor
endfunction
endif
@@ -0,0 +1,14 @@
if utils#hasplug('tagbar')
let g:tagbar_width = 30
let g:tagbar_sort = 0
let g:tagbar_compact = 2
let g:tagbar_autoshowtag = 1
let g:tagbar_foldlevel = 99
let g:tagbar_no_status_line = 1
let g:tagbar_visibility_symbols = {
\ 'public' : '+',
\ 'protected' : '#',
\ 'private' : '-'
\ }
nnoremap <silent> <leader>v <cmd>TagbarToggle<CR>
endif
@@ -0,0 +1,159 @@
if utils#hasplug("vim-airline")
" Extensions
function! AirlineCocStatus()
if ! exists('*CocAction')
return
endif
let loading = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"]
try
let result = CocAction('services')
catch
" call timer_start(200, {->execute('AirlineRefresh')})
return 'no coc '
endtry
let state = ''
let id = ''
for e in result
if e['languageIds'][0] == &ft
let state = e['state']
let id = e['id']
endif
endfor
if id == ''
return 'no lsp '
endif
" messy way to get time in millisecond in vim
let time = float2nr(str2float(reltime()->reltimestr()[4:]) * 1000)
let speed = 800
let loadidx = time % speed
let msg = id
if state == "starting"
if ! exists('s:cocstatustimer') || len(timer_info(s:cocstatustimer)) == 0
let s:cocstatustimer = timer_start(100, {->execute('AirlineRefresh')}, {'repeat': 800})
endif
return msg . " " . loading[loadidx/(speed/10)] . " "
elseif state == "running"
if exists('s:cocstatustimer')
call timer_stop(s:cocstatustimer)
unlet s:cocstatustimer
endif
return msg . " ✔ "
endif
return ''
endfunction
function! AirlineBufferNumber()
return len(g:index_to_buffer)
endfunction
" This must use my fork version of bufferline
" the number of cols bufferline cannot use out of max of screen cols
let g:bufferline_forbided_col = 32
let g:airline_experimental = g:vim_v >= 900 ? 1 : 0
function! AirlineInit()
" call airline#parts#define_function('bufnum', 'AirlineBufferNumber')
call airline#parts#define_function('cocstatus', 'AirlineCocStatus')
call airline#parts#define_minwidth('mode', 10)
let _airline_section_y = ''
if utils#hasplug('coc.nvim')
" let _airline_section_y = airline#section#create(['cocstatus'])
endif
let g:airline_section_a = airline#section#create(['mode'])
let g:airline_section_b = ''
let g:airline_section_error = ''
let g:airline_section_warning = ''
" let g:airline_section_x = airline#section#create(['bufnum'])
let g:airline_section_x = ''
let g:airline_section_y = _airline_section_y
let g:airline_section_z = airline#section#create(['cocstatus', '│ ', '%(%l:%c%)'])
endfunction
function! AirlineColouriseSplits()
" get rid of the vertical split between two windows in statusline
hi! link StatusLine airline_z
hi! link StatusLineNC airline_z_inactive
endfunction
augroup AirlineAu
autocmd!
autocmd ColorScheme * call AirlineColouriseSplits()
autocmd User AirlineAfterInit ++once call AirlineInit()
augroup end
" let g:airline_left_sep = ''
" let g:airline_left_alt_sep = ''
" let g:airline_right_sep = ''
" let g:airline_right_alt_sep = ''
function s:airline_refresh(...)
" this has to be set late otherwise it will cause 'mode' extension be
" skipped at startup
let g:airline_skip_empty_sections = 1
endfunction
call RegisterLateInit(function('s:airline_refresh'), 1)
" let g:airline_skip_empty_sections = 1
let g:airline_inactive_collapse = 1
let g:airline_focuslost_inactive = 0
let g:airline_extensions = ['bufferline']
let g:airline_filetype_overrides = {
\ 'vista': ['Vista', ''],
\ 'minimap': ['', ''],
\ 'nerdtree': [ get(g:, 'NERDTreeStatusline', 'NERD'), ''],
\ }
" hide airline in startify
function! HideStartify(...)
let ctx = a:2
if ! ctx.active
return 1
end
if &filetype == 'startify'
let builder = a:1
call builder.add_section('Normal', '')
return 1
endif
if &filetype == 'help'
let builder = a:1
call builder.add_section('airline_a_bold', ' Help ')
call builder.add_section('airline_c', ' %f')
return 1
endif
endfunction
call airline#add_statusline_func('HideStartify')
" " without this airline will overwrite some setting like bufferline_active_buffer_left, etc.
let g:airline#extensions#bufferline#overwrite_variables = 0
" call theme#addTransGroup(['airline_c', 'airline_c_bold'])
" let g:airline_mode_map = {
" \ '__' : '-',
" \ 'c' : 'C',
" \ 'i' : 'I',
" \ 'ic' : 'I',
" \ 'ix' : 'I',
" \ 'n' : 'N',
" \ 'multi' : 'M',
" \ 'ni' : 'N',
" \ 'no' : 'N',
" \ 'R' : 'R',
" \ 'Rv' : 'R',
" \ 's' : 'S',
" \ 'S' : 'S',
" \ '' : 'S',
" \ 't' : 'T',
" \ 'v' : 'V',
" \ 'V' : 'V',
" \ '' : 'V',
" \ }
endif
@@ -0,0 +1,17 @@
if utils#hasplug("vim-bufferline")
let g:bufferline_echo = 0
let g:bufferline_modified = '+'
" scrolling with fixed current buffer position
let g:bufferline_active_buffer_left = '['
let g:bufferline_active_buffer_right = ']'
if utils#hasplug("vim-airline")
let g:bufferline_inactive_highlight = 'airline_c'
let g:bufferline_active_highlight = 'airline_c_bold'
elseif ! utils#hasplug("vim-global-statusline")
call bufferline#init_echo()
endif
endif
@@ -0,0 +1,5 @@
if utils#hasplug("vim-devicons")
let g:webdevicons_enable_airline_statusline = 0
endif
@@ -0,0 +1,53 @@
if utils#hasplug('vim-floaterm')
let g:floaterm_keymap_toggle = '<C-\>'
let g:floaterm_wintype = 'float'
let g:floaterm_position = 'bottomright'
let g:floaterm_width = 0.5
let g:floaterm_height = 0.5
let g:floaterm_autohide = 2
call theme#addCleanBg(['FloatermBorder', 'Floaterm'])
autocmd QuitPre * :FloatermKill!<CR>
" press <c-[> ener normal mode in terminal. autocmd prevent this key map
" in other plugin like fzf
autocmd FileType floaterm tmap <buffer> <C-[> <C-w>N
function! s:hasterm(name)
let bufs = floaterm#buflist#gather()
for bufnr in bufs
let bufinfo = getbufinfo(bufnr)[0]
let termname = bufinfo['variables']['floaterm_name']
if termname == a:name
return v:true
endif
endfor
return v:false
endfunction
function! ToggleRepl()
let name = 'REPL'
let currentWindow=winnr()
if s:hasterm(name)
execute('FloatermToggle ' . name)
else
:FloatermNew --name=REPL --width=0.5 --wintype=vsplit --position=botright --autoclose=2 ipython
endif
exe currentWindow . "wincmd w"
endfunction
function! ToggleNormal()
let name = 'normalterm'
if s:hasterm(name)
execute('FloatermToggle ' . name)
else
:FloatermNew --name=normalterm --width=0.5 --height=0.5 --wintype=float --position=bottomright --autoclose=2
endif
endfunction
nnoremap <silent> <leader>tp :call ToggleRepl()<CR>
nnoremap <silent> <leader>tn :call ToggleNormal()<CR>
vnoremap <silent> <leader>tl :FloatermSend --name=REPL<CR>
endif
@@ -0,0 +1,5 @@
if utils#hasplug('vim-gitgutter')
call theme#addCleanBg(['GitGutterAdd', 'GitGutterChange', 'GitGutterDelete', 'GitGutterChangeDelete'])
nnoremap <leader>gt :GitGutterBufferToggle<CR>
endif
@@ -0,0 +1,10 @@
if utils#hasplug("vim-gutentags")
if exists("*gutentags#statusline()")
set statusline+=%{gutentags#statusline()}
endif
let g:gutentags_trace = 1
let g:gutentags_cache_dir=g:vim_dir . '/.vimtags/'
let g:gutentags_project_root=['.git', '.hg', '.svn', '.bzr', '_darcs', '_FOSSIL_', '.fslckout', 'src']
endif
@@ -0,0 +1,35 @@
if utils#hasplug('vim-illuminate') && g:vim_type == 'vim' " nvim doesn't need this config
let g:Illuminate_highlightUnderCursor = 1
let g:Illuminate_ftHighlightGroups = {
\ 'vim:blacklist': ['vimLet', 'vimFuncKey', 'vimNotFunc', 'vimOperParen', 'vimLineComment'],
\ 'java:blacklist' : [ 'javaType', 'javaScopeDecl', 'javaMethodDecl',
\ 'javaComment', 'javaStorageClass', 'javaClassDecl', 'javaExternal',
\ 'javaTypedef', 'javaLineComment', 'javaStatement', 'javaCommentTitle', 'javaDocComment' ],
\ 'lua:blacklist' : [ 'luaComment', 'luaCond', 'luaStatement', 'luaFunction' ]
\ }
let g:Illuminate_ftwhitelist = ['vim', 'sh', 'python', 'rust', 'java',
\ 'c', 'cpp', 'javascript', 'typescript', 'lua']
" ugly workaround for the bug that illuminate not working after first enter vim
" {
function s:init_illuminate(...)
let bgType = theme#getBgType()
let bg = theme#getHiTerm('Visual', bgType)
if bg != 'NONE' && &bg == 'dark'
execute('hi illuminatedWord '.bgType.'='.bg)
execute('hi illuminatedCurWord '.bgType.'='.bg)
else
hi illuminatedWord cterm=underline gui=underline
hi illuminatedCurWord cterm=underline gui=underline
end
endfunction
call RegisterLateInit(function('s:init_illuminate'), 0)
" }
augroup illuminate_augroup
autocmd!
autocmd ColorScheme * call s:init_illuminate()
augroup END
endif
@@ -0,0 +1,5 @@
if utils#hasplug('vim-matchup')
let g:matchup_matchparen_offscreen = {}
call theme#addCleanBg('MatchWord')
endif
@@ -0,0 +1,8 @@
if utils#hasplug("vim-rooter")
let g:rooter_patterns = ['.vscode', '.git', '*.sln', 'src']
let g:rooter_change_directory_for_non_project_files = ''
let g:rooter_silent_chdir = 0
" let g:rooter_manual_only = 1
endif
@@ -0,0 +1,5 @@
if utils#hasplug("vim-sneak")
let g:sneak#label = 1
" map f <Plug>Sneak_s
" map F <Plug>Sneak_S
endif
@@ -0,0 +1,58 @@
if utils#hasplug("vim-startify")
if has('nvim')
let buffer_str_len = (&columns - 60) / 2
let buf_str = repeat(' ', buffer_str_len)
let ascii_art = [
\ buf_str . '',
\ buf_str . '',
\ buf_str . ' __ __ ________ ______ __ __ ______ __ __ ',
\ buf_str . '| \ | \| \ / \ | \ | \| \| \ / \',
\ buf_str . '| $$\ | $$| $$$$$$$$| $$$$$$\| $$ | $$ \$$$$$$| $$\ / $$',
\ buf_str . '| $$$\| $$| $$__ | $$ | $$| $$ | $$ | $$ | $$$\ / $$$',
\ buf_str . '| $$$$\ $$| $$ \ | $$ | $$ \$$\ / $$ | $$ | $$$$\ $$$$',
\ buf_str . '| $$\$$ $$| $$$$$ | $$ | $$ \$$\ $$ | $$ | $$\$$ $$ $$',
\ buf_str . '| $$ \$$$$| $$_____ | $$__/ $$ \$$ $$ _| $$_ | $$ \$$$| $$',
\ buf_str . '| $$ \$$$| $$ \ \$$ $$ \$$$ | $$ \| $$ \$ | $$',
\ buf_str . ' \$$ \$$ \$$$$$$$$ \$$$$$$ \$ \$$$$$$ \$$ \$$',
\]
else
let buffer_str_len = (&columns - 30) / 2
let buf_str = repeat(' ', buffer_str_len)
let ascii_art = [
\ buf_str . '',
\ buf_str . '',
\ buf_str . ' __ __ ______ __ __ ',
\ buf_str . '| \ | \| \| \ / \',
\ buf_str . '| $$ | $$ \$$$$$$| $$\ / $$',
\ buf_str . '| $$ | $$ | $$ | $$$\ / $$$',
\ buf_str . ' \$$\ / $$ | $$ | $$$$\ $$$$',
\ buf_str . ' \$$\ $$ | $$ | $$\$$ $$ $$',
\ buf_str . ' \$$ $$ _| $$_ | $$ \$$$| $$',
\ buf_str . ' \$$$ | $$ \| $$ \$ | $$',
\ buf_str . ' \$ \$$$$$$ \$$ \$$',
\]
endif
let g:startify_padding_left = &columns / 2 - &columns / 4 - &columns / 8
let g:startify_custom_header = ascii_art
let g:startify_change_to_dir = 0
let g:startify_files_number = 5
let g:startify_bookmarks = [ g:dotfiledir . 'main.vim' ]
let g:startify_lists = [
\ { 'header': startify#pad([' RECENT']), 'type': 'files' },
\ { 'header': startify#pad([' SESSIONS']), 'type': 'sessions' },
\ { 'header': startify#pad([' BOOKMARKS']), 'type': 'bookmarks' },
\ ]
" session related KeyBinding. These KeyBinding uses function from startify
nnoremap <silent> <leader><leader>s :SSave!<CR>
nnoremap <silent> <leader><leader>l :SLoad<CR>
nnoremap <silent> <leader><leader>d :SDelete!<CR>
nnoremap <silent> <leader><leader>c :SClose<CR>
au VimLeave * SSave! last
endif
@@ -0,0 +1,11 @@
if utils#hasplug('vim-tmux-navigator')
let g:tmux_navigator_no_mappings = 1
noremap <silent> <c-h> :<C-U>TmuxNavigateLeft<cr>
noremap <silent> <c-j> :<C-U>TmuxNavigateDown<cr>
noremap <silent> <c-k> :<C-U>TmuxNavigateUp<cr>
noremap <silent> <c-l> :<C-U>TmuxNavigateRight<cr>
" noremap <silent> {Previous-Mapping} :<C-U>TmuxNavigatePrevious<cr>
endif
@@ -0,0 +1,7 @@
vim9script
if utils#hasplug('fuzzyy')
g:files_respect_gitignore = 1
g:fuzzyy_menu_matched_hl = 'error'
g:fuzzyy_dropdown = 1
endif
@@ -0,0 +1,188 @@
vim9script
if utils#hasplug('vim-global-statusline')
g:stl_nonbtbg = 'folded'
g:stl_bg = 'normal'
g:bufferline_forbided_col = 32
def ReverseHl(name: string, hl: string)
var hl_terms = theme#getHiTerms(hl)
var normal_terms = theme#getHiTerms('normal')
for [term, val] in items(hl_terms)
if val == 'NONE'
hl_terms[term] = normal_terms[term]
endif
endfor
exe 'hi ' .. name .. ' guibg=' .. hl_terms['guifg'] .. ' guifg='
.. hl_terms['guibg'] .. ' ctermbg=' .. hl_terms['ctermfg']
.. ' ctermfg=' .. hl_terms['ctermbg']
enddef
def StlHighlight()
hi normalModeGstl cterm=reverse gui=reverse
ReverseHl('insertModeGstl', 'function')
ReverseHl('visualModeGstl', 'statement')
ReverseHl('commandModeGstl', 'number')
enddef
autocmd ColorScheme * StlHighlight()
var mode_color = {
n: 'normalModeGstl',
i: 'insertModeGstl',
v: 'visualModeGstl',
V: 'visualModeGstl',
c: 'commandModeGstl',
}
var mode_str = {
n: ' NORMAL ',
i: ' INSERT ',
v: ' VISUAL ',
V: ' V-LINE ',
c: ' COMMAND ',
}
mode_str[nr2char(22)] = ' V-BLOCK '
mode_color[nr2char(22)] = 'curSearch'
def Modestr(): void
var m = mode()
if has_key(mode_str, m)
g:StlSetPart(0, mode_str[m], mode_color[m], 'mode')
else
echom char2nr(m)
g:StlSetPart(0, ' ' .. &ft .. ' ', 'TabLineSel', 'mode')
endif
g:StlRefresh()
enddef
def Fnstr(): void
g:StlSetPart(10, 'filename: ' .. bufname(), '', 'filename')
g:StlRefresh()
enddef
def Bufstr(): void
var bufstr = bufferline#get_echo_string()
g:StlSetPart(9, ' ' .. bufstr, '', 'bufstr')
g:StlRefresh()
enddef
def Lncol(): void
var col = virtcol(".")
var ln = line('.')
var m = mode()
var color = ''
if has_key(mode_color, m)
color = mode_color[m]
else
color = 'TabLineSel'
endif
g:StlSetPart(&co - 9, printf(" %d:%d", ln, col), color, 'linenr')
g:StlRefresh()
enddef
var cocstatustimer = -1
def Cocstatus(): string
const loading = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"]
var results = []
var result = '𐄂'
var fticon = '𐄂'
try
if exists('g:CocAction')
results = g:CocAction('services')
endif
catch
endtry
var state = ''
var id = ''
if len(results) == 0
timer_start(100, function(Lsp))
endif
for e in results
if e['languageIds'][0] == &ft
state = e['state']
id = e['id']
endif
endfor
# messy way to get time in millisecond in vim
var time = float2nr(str2float(reltime()->reltimestr()[4 : ]) * 1000)
var speed = 800
var loadidx = time % speed
var msg = id
if state == "starting"
if len(timer_info(cocstatustimer)) == 0
cocstatustimer = timer_start(100, function(Lsp), {'repeat': 800})
endif
fticon = loading[loadidx / (speed / 10)]
elseif state == "running"
if len(timer_info(cocstatustimer)) != 0
timer_stop(cocstatustimer)
cocstatustimer = -1
endif
if exists('g:WebDevIconsGetFileTypeSymbol')
fticon = g:WebDevIconsGetFileTypeSymbol()
endif
endif
# return fticon .. ' ' .. result
return 'lsp ' .. fticon
enddef
def Lsp(...timer: list<any>): void
var s = Cocstatus()
g:StlSetPart(&co - 17, ' ' .. s .. ' ', '', 'lsp')
g:StlRefresh()
enddef
var fancytimer = 0
def Fancy(...timer: list<any>): void
var expressions = [' (◕_◕)', ' (◕‿◕)', '\(◕◡◕\)', ' (◣_◢)', ' (◣‿◢)', '\(◣◡◣\)', ' (◠‿◠)', ' (◠_◠)', '\(◠◡◠\)', ' (◡‿◡)', ' (◡_◡)', '\(◡◡◡\)', ' (┳Д┳)', ' (个_个)', ' ( ≧Д≦)', ' 흫_흫', ' 句_句']
# var letters = [𝔞 𝔟 𝔠 𝔡 𝔢 𝔣 𝔤 𝔥 𝔦 𝔧 𝔨 𝔩 𝔪 𝔫 𝔬 𝔭 𝔮 𝔯 𝔰 𝔱 𝔲 𝔳 𝔴 𝔵 𝔶 𝔷]
# string "I love you" using unicode letters
var lang = ''
if &ft == 'python'
lang = '𝕻𝖞𝖙𝖍𝖔𝖓'
elseif &ft == 'java'
lang = '𝕵𝖆𝖛𝖆'
elseif &ft == 'javascript'
lang = '𝕵𝖆𝖛𝖆𝖘𝖈𝖗𝖎𝖕𝖙'
elseif &ft == 'lua'
lang = '𝕷𝖚𝖆'
elseif &ft == 'vim'
lang = '𝓥𝓲𝓶 𝓢𝓬𝓻𝓲𝓹𝓽'
else
lang = &ft
endif
var str = lang .. ' 𝔦𝔰 𝔱𝔥𝔢 𝔟𝔢𝔰𝔱 𝔩𝔞𝔫𝔤𝔲𝔞𝔤𝔢'
# fancytimer = (fancytimer + 1) % len(str)
g:StlSetPart(&co - 27 - strcharlen(str), str, '', 'fancy')
enddef
def Theme(): void
# const light = '☀'
# const dark = '☽'
const light = '🌕'
const dark = '🌑'
var theme = &bg == 'light' ? light : dark
g:StlSetPart(&co - 23, '│ ' .. theme, '', 'bgc')
g:StlRefresh()
enddef
def EnterInit(): void
# Theme()
Lncol()
Lsp()
# autocmd GlobalStl ColorScheme * Theme()
enddef
augroup GlobalStl
autocmd!
autocmd VimEnter,ModeChanged * Modestr() | Lncol()
autocmd BufEnter,BufDelete,BufWritePost * Bufstr() | Modestr()
autocmd CursorHold * Lncol()
autocmd BufEnter,BufReadPost * Lsp()
autocmd VimEnter * EnterInit()
augroup END
endif
@@ -0,0 +1,7 @@
if utils#hasplug('vimtex')
noremap <leader>lc :VimtexCompile<CR>
noremap <leader>lv :VimtexView<CR>
if g:os == 'Darwin'
let g:vimtex_view_method = 'skim'
endif
endif
@@ -0,0 +1,60 @@
if utils#hasplug('vista.vim')
let g:vista_default_executive = 'vim_lsp'
if utils#hasplug('coc.nvim')
let g:vista_default_executive = 'coc'
elseif executable('ctags')
let g:vista_default_executive = 'ctags'
endif
nnoremap <silent> <leader>v :Vista!!<CR>
let g:vista_cursor_delay = 0
let g:vista_echo_cursor = 0
let g:vista_echo_cursor_strategy = 'floating_win'
let g:vista_close_on_jump = 0
let g:vista_floating_delay = 0
let g:vista_ignore_kinds = ['Variable', 'Field', 'EnumMember',
\ 'String', 'Object', 'Array', 'Constant', 'Package', 'Boolean', 'Number'
\ ]
let g:vista_floating_border = 'rounded'
let g:vista_disable_statusline = 1
" let g:vista_keep_fzf_colors = 1
let g:vista_update_on_text_changed_delay = 0
let g:vista_update_on_text_changed = 1
let g:vista#renderer#enable_kind = 1
let g:vista#renderer#enable_icon = 1
" return to last position of vista
let g:vista_last_row = v:null
function! VistaCursorJump()
" let found = vista#util#BinarySearch(g:vista.raw, line('.'), 'line', '')
let found = g:vista_last_row
if empty(found)
return
endif
let vlnum = get(found, 'vlnum', v:null)
call cursor(vlnum, 3)
endfunction
" save tag for VistaCursorJump use
function! VistaH2()
if exists('*vista#util#BinarySearch')
let bufs = map(filter(copy(getbufinfo()), 'v:val.listed'), 'v:val.bufnr')
if index(bufs, bufnr('%')) < 0
return
endif
let found = vista#util#BinarySearch(g:vista.raw, line('.'), 'line', '')
if empty(found)
return
endif
let g:vista_last_row = found
endif
endfunction
augroup VistaAu
autocmd!
autocmd BufLeave * call VistaH2()
autocmd FileType vista call VistaCursorJump()
augroup END
endif
@@ -0,0 +1,31 @@
if utils#hasplug('wilder.nvim')
call wilder#setup({
\ 'modes': [':'],
\ 'next_key': '<tab>',
\ 'previous_key': '<S-Tab>',
\ 'enable_cmdline_enter': 0,
\ })
call wilder#set_option('pipeline', [
\ wilder#debounce(10),
\ wilder#branch(
\ wilder#cmdline_pipeline({'language': g:vim_type == 'nvim' ? 'python' : 'vim'}),
\ ),
\ ])
if g:vim_type == 'vim'
call wilder#set_option('renderer', wilder#popupmenu_renderer())
else
call wilder#set_option('renderer', wilder#popupmenu_renderer(
\ wilder#popupmenu_border_theme({
\ 'highlights': {
\ 'default': 'Normal',
\ },
\ 'pumblend': 20,
\ 'border': 'rounded',
\ })))
endif
endif
@@ -0,0 +1,8 @@
if utils#hasplug("winresizer")
let g:winresizer_vert_resize = 2
let g:winresizer_horiz_resize = 2
" nnoremap <C-w>r :WinResizerStartResize<CR>
let g:winresizer_start_key = '<C-w>r'
endif
@@ -0,0 +1,3 @@
if utils#hasplug("zoxide.vim")
endif